【问题标题】:Use Gradle to run Yarn in every folder使用 Gradle 在每个文件夹中运行 Yarn
【发布时间】:2017-02-03 12:45:04
【问题描述】:

我有一个文件夹,里面有很多目录。我想要一个 gradle 脚本,它将遍历它们(不是递归地)并运行

 yarn build 

在其中。

我尝试了两种方法(并开始了几种不同的事情),但可惜没有运气。

task build (description: "Loops through folders and builds"){
    FileTree tree = fileTree(dir: 'admin', include: '*/package.json')

    tree.each {File file -> println file}

}

task yarnBuild (type: Exec){
    executable "bash"
    args "find . -type d -exec ls {} \\;"
}

通过任务构建,我想找到包含 package.json 的目录(真的是所有目录),但是我不知道如何更改到该目录以进行“纱线构建”

对于 yarnBuild 任务,我只想使用 unix 命令来完成。但我也无法让它工作。

我会更有兴趣使用实际的 Gradle 找到更符合“构建”任务的解决方案。有人可以给我一些指示吗?如何更改到这些目录?我猜一旦我在正确的文件夹中,我就可以使用 Exec 来运行“yarn build”。

谢谢!

【问题讨论】:

    标签: gradle groovy yarnpkg


    【解决方案1】:

    我可能会为每个目录创建一个任务并将它们全部连接到DAG

    apply plugn: 'base'
    FileTree directories = fileTree(projectDir).matching {
        include { FileTreeElement el ->
           return el.directory && el.file.parentFile == projectDir
        }
    }
    directories.files.each { File dir ->
        // create a task for the directory
        Task yarnTask = tasks.create("yarn${dir.name}", Exec) {
            workingDir dir
            commandLine 'yarn', 'build'
    
            // TODO: set these so gradle's up-to-date checks can work
            inputs.dir = ???
            outputs.dir = ???
        }
        // wire the task into the DAG
        build.dependsOn yarnTask
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 2014-01-03
      • 1970-01-01
      • 2018-09-21
      • 1970-01-01
      相关资源
      最近更新 更多