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

Cos*_*sta 4 javascript bash node.js npm

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

scripts: { 
  "echo": "echo ${1-'/*'}"
}
Run Code Online (Sandbox Code Playgroud)

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

但是,当我跑步时npm run echo /salad,我发现/* /salad这没有帮助。好像是使用默认的,加一个空格,然后加上参数。

/salad当我提供参数和/*不提供参数时如何获取?

小智 6

npm 脚本参数只是附加到末尾,因此它们不会正确解析数字变量,例如$1.

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

scripts: { 
  "echo": "run(){ echo ${1-'/*'}; }; run"
}
Run Code Online (Sandbox Code Playgroud)

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