gpt4 book ai didi

cygwin - 使用 gradle 运行 grunt

转载 作者:行者123 更新时间:2023-12-04 06:04:09 26 4
gpt4 key购买 nike

我在让 gradle 运行 grunt 时遇到了一些问题。我正在使用 Windows 和 cygwin,而 grunt 显然在路径中:

depressio@depressio /cygdrive/c/dev/project
$ which grunt
/cygdrive/c/Users/depressio/AppData/Roaming/npm/grunt

所以,我做了这个 gradle 任务:

task execGrunt(type: Exec) {
workingDir './ui'
commandLine 'grunt'
}

很简单。但是,当我运行它时,我得到了这个异常:

Caused by: org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'grunt''
at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:195)
at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:325)
at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:90)
at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)
Caused by: java.io.IOException: Cannot run program "grunt" (in directory "C:\dev\project\ui"): CreateProcess error=2, The system cannot find the file specified
at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:71)
... 1 more
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
... 2 more

这是为什么呢?当我自己转到 ./ui 时,我可以很好地运行 grunt(那里有一个 grunt.js)。

我发现的一些建议让我将 commandLine 定义为 'cmd', '/c', 'grunt',但这只会打开 grunt。 js 在编辑器中。此外,这在 UNIX 上不起作用,只要正确设置 PATH,我希望此任务在 Windows (cygwin) 和 UNIX 上都能工作。

显然,我遗漏了一些东西。

更新:

虽然这不适用于 UNIX,但我尝试使用 'grunt.cmd' 而不是简单地使用 'grunt'。这也不起作用,但给出了不同的堆栈跟踪:

Caused by: org.gradle.process.internal.ExecException: Process 'command 'grunt.cmd'' finished with non-zero exit value 3
at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:363)
at org.gradle.process.internal.DefaultExecAction.execute(DefaultExecAction.java:39)
at org.gradle.api.tasks.Exec.exec(Exec.java:66)

(还有很多,但这是最低的“原因”)

它似乎至少执行了 grunt,然而,我的 coffeescript 被编译成 js 并且出现了这一行这一事实证明了这一点:Running "clean:0"(clean) task

最佳答案

我在 Windows 中使用 grunt,而我本应使用 grunt.cmd。一旦我这样做了,并弄清楚了为什么 coffee 失败了(为什么 grunt 失败了),它似乎工作正常。

但是,grunt.cmd 仅适用于 Windows。我确实找到了 this question and answer这提供了一种检测操作系统的方法。

关于cygwin - 使用 gradle 运行 grunt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14464287/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com