节点:从npm脚本访问命令行参数并从脚本中使用它们

时间:2019-09-09 05:52:14

标签: node.js npm npm-scripts

我想在package.json中定义以下脚本

scripts: {
  "filter": "npm run jest -- -t $1",
  "jest": "jest",
  [...]

这个想法是我可以运行npm run filter -- my-filter来执行npm run jest -- -t my-filter

如果我跑步:

npm run filter -- pattern
-->
npm run jest -- -t $1 "pattern"

$ 1是原义的。如果我在脚本中使用$ 1,它可以正常工作,看来npm在句子末尾传递了所有参数。我只想知道如何使用单个参数

1 个答案:

答案 0 :(得分:0)

您可以像这样操作。

npm run <command> [-- <args>]

例如:-

"scripts": {
    "server": "node server.js"
}

那么以下命令将等效:

node server.js --port=1337 => npm run server -- --port=1337

另一个简单示例

{
  "print": "f(){ echo Hello $1! && echo Bye $2! ;};f",
  "test": "npm run print -- world stranger"
}

您得到:

$ npm test -s # -s is to suppress npm messages for this example
Hello world!
Bye stranger!

希望此代码有助于您理解和解决问题。