window下无法获取npm run script 所传参数

发布于 2022-09-06 10:04:34 字数 897 浏览 12 评论 0

通常我们可以使用如下方式在命令行中传递参数

node .\scripts\test.js -- --backup --module=sa

使用yargs得到如下结果

{"_":[],"help":false,"version":false,"backup":true,"module":"sa","$0":"scripts\\test.js"}

同样的我们使用全局的gulp命令gulp -- --backup --module=sa同样可以得到上述参数。但是我们这个时候是使用的全局gulp,所以为了使用我们的node_modules下的gulp版本,通常在package.json中定义如下gulp命令

scripts: {
    "build": "gulp"
}

但是当我们使用npm run build -- --backup --module=sa这个命令后拿到的yargs结果如下:

{"_":[],"help":false,"version":false,"$0":"node_modules\\gulp\\bin\\gulp.js"}

这个时候在gulpfile.js拿不到命令行中传递过来的参数了?为何?如何做才能在gulpfile.js拿到命令行中传递过来的参数呢?

环境
windows 7
node 6.10
npm 5.6.0
gulp 3.9.1

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

盛夏尉蓝 2022-09-13 10:04:34
// index.js
console.log(process.argv);

package.json

"build": "node index.js"
npm run build -- --name hello

打印的结果是

[ '/usr/local/bin/node',
  '/Users/ltaoo/Documents/nodejs/args/index.js',
  '--name',
  'hello' ]

参考

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文