You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向使用nodenv的NPM脚本传递参数?

解决node-env-run脚本传参问题

问题出在node-env-run(即你使用的nodenv命令)需要通过--来区分自身参数和要传递给目标脚本的参数,结合npm脚本的传参规则,有两种可行方案:

方案1:运行时传递完整参数链

保持现有package.json脚本不变:

"scripts": {
     "run-jobs": "nodenv tests/run-jobs.js"
}

运行时使用以下命令传递任务名称:

npm run run-jobs -- -- myjob1 myjob2
  • 第一个--是npm的语法,用来将后续参数传递给脚本里的nodenv命令
  • 第二个--是node-env-run的语法,用来将后续参数传递给你的tests/run-jobs.js脚本

此时在tests/run-jobs.js中,可通过process.argv.slice(2)获取传递的任务名称(process.argv前两位是node路径和脚本路径,从索引2开始是你传入的myjob1、myjob2)。

方案2:修改package.json简化命令

修改脚本,提前加上node-env-run所需的--:

"scripts": {
     "run-jobs": "nodenv tests/run-jobs.js --"
}

运行时只需用npm的--传递参数:

npm run run-jobs -- myjob1 myjob2

这种方式更简洁,效果和方案1一致,参数同样会被传递到你的脚本中。

验证方式

在tests/run-jobs.js开头添加一行代码打印参数:

console.log('传入的任务参数:', process.argv.slice(2));

运行对应命令后,就能在控制台看到你传递的任务名称。

内容的提问来源于stack exchange,提问作者Raphi OKG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 21:15:33