Grunt --force 因节点失败:错误选项

Posted

技术标签:

【中文标题】Grunt --force 因节点失败:错误选项【英文标题】:Grunt --force fails with node: bad option 【发布时间】:2018-09-03 13:01:16 【问题描述】:

我有一个名为 eslint:jenkins 的 Grunt 任务,它在项目上运行 eslint。在构建管道中,我将其运行为:

grunt eslint:jenkins --force --verbose

我使用--force,所以即使任务失败,grunt 也不会失败,因为存在一些 eslint 问题。

当我在本地运行它时,一切都很好。当它在 Jenkins 上运行时,我收到以下错误:

<path-to-installation>/Node_10/bin/node: bad option: --force

对于本地和 Jenkins 环境,版本是:Node 10.0 和 grunt-cli 1.3.1。

我无法想象为什么在一种情况下--force 标志会传播到 Node.js。谁能给我一些关于在哪里看的指示?

【问题讨论】:

【参考方案1】:

节点 10 和带参数的 gulp 任务存在相同问题。

./node_modules/.bin/gulp tasks:my-task --myoption=value
[16:14:24] Node flags detected: --myoption=value
[16:14:24] Respawned to PID: 21231

节点 8 没有问题。没有尝试使用节点 9。一定是某个地方发生了重大变化,但我可以在这个问题和 https://github.com/gulpjs/gulp/issues/1564 旁边找到任何相关信息

【讨论】:

【参考方案2】:

sudo npm install grunt-cli -g

应该输出类似:

/usr/local/bin/grunt -> /usr/local/lib/node_modules/grunt-cli/bin/grunt
+ grunt-cli@1.3.2
updated 2 packages in 3.056s

那么grunt --force 应该适合你。

(在 macOS Mojave 上测试)

【讨论】:

是的,在 1.3.2 中已修复 :)【参考方案3】:

尝试使用 grunt tasks:my-task -myoption=value,它对我有用。

【讨论】:

以上是关于Grunt --force 因节点失败:错误选项的主要内容,如果未能解决你的问题,请参考以下文章

npm install vercel 因错误的节点版本而失败,尽管它是正确的

Bootstrap 导出选项适用于 5,000 行,但因网络故障导致 16,000 行失败

“错误:Grunt :: 在 127.0.0.1 上启动检查器:xxxx 失败:地址已在使用中”

Node.js 上的 Lowdb 因权限错误而失败

警告:connect.static 不是函数使用 --force 继续

grunt karma 覆盖在 jenkins 上失败,但在 windows/unix 上有效