如何为npm脚本提供默认参数值?

时间:2018-10-06 19:17:37

标签: javascript node.js bash npm

我的package.json文件中有这个文件:

scripts: { 
  "echo": "echo ${1-'/*'}"
}

然后,当我运行npm run echo时,我得到的是/*(它表示从根开始的所有路径。这是默认设置。)

但是,当我运行npm run echo /salad时,我得到/* /salad并没有帮助。似乎正在使用默认值,添加一个空格,然后添加参数。

当我提供参数时如何获得/salad,而当我不提供参数时如何获得/*

1 个答案:

答案 0 :(得分:2)

npm脚本参数仅附加到末尾,因此它们将无法正确解析数字变量,例如$1

要解析此类变量,可以将脚本包装在Shell函数中,然后执行该函数。试试这个:

scripts: { 
  "echo": "run(){ echo ${1-'/*'}; }; run"
}

或者,仅在脚本中使用命名变量,而不是数字变量。