如何将“纱线运行脚本构建”任务从frontend-maven-plugin迁移到gradle?

时间:2018-08-20 08:22:04

标签: maven-plugin yarnpkg gradle-task gradle-node-plugin

我使用gradle-node-plugin代替了frontend-maven-plugin。
在maven中编写“ yarn run-script build”任务,如下所示

<execution>
   <id>yarn run-script build</id>
   <goals>
      <goal>yarn</goal>
   </goals>
   <phase>prepare-package</phase>
   <configuration>
      <arguments>build</arguments>
      <environmentVariables>
         <buildDir>${project.build.directory}/classes/static</buildDir>
      </environmentVariables>
   </configuration>
</execution>

在gradle中,我编写了yarnScriptBuild任务

task yarnScriptBuild(type: YarnTask, dependsOn: yarnTest) {
    group 'Node'
    args = ['run', 'build']
}

如果我执行了“ ./gradlew yarnScriptBuild”命令,
我收到错误消息“输出路径一定不能是项目根目录!”
然后,我将outputs.dir = ("$buildDir/classes")插入了yarnScriptBuild,但是没有用。
(几天前我发现页面“ $ buildDir意味着{root directory} / build”)
我收到另一个错误“没有此类属性:类的目录:org.gradle.api.internal.tasks.DefaultTaskOutputs”

这是否意味着“ dir”属性不存在?
我应该怎么做?缺少什么?

如果缺少信息,请告诉我。
谢谢。

1 个答案:

答案 0 :(得分:0)

尝试在yarnWorkDir中配置nodeWorkDirNodeExtension

NodeExtension node = project.extensions.getByType(NodeExtension.class)
node.with {
     nodeModulesDir = ${pathToDirWithNodeModulesDir}
     yarnWorkDir = ${pathToYarnJs}
}

另外,您可能想将outputs路径修复为此:

outputs.dir = project.file("$buildDir/classes")

或者这个:

output.dir "$buildDir/classes"