如何将"yarn run-script build"任务从前端插件迁移到 gradle?



我使用gradle-node-plugin而不是frontend-maven-plugin
。在 Maven 中编写了 yarn 运行脚本构建"任务,如下所示

<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 意思是 {根目录}/构建"(我收到另一个错误"没有这样的属性:类的目录:org.gradle.api.internal.tasks.DefaultTaskOutputs">

这是否意味着"目录"属性不存在?
我该怎么办?缺少什么?

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

尝试在NodeExtension中配置yarnWorkDirnodeWorkDir

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

此外,您可能希望将outputs路径修复为:

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

或者这个:

output.dir "$buildDir/classes"

最新更新