我的package.json
文件中有这个文件:
scripts: {
"echo": "echo ${1-'/*'}"
}
然后,当我运行npm run echo
时,我得到的是/*
(它表示从根开始的所有路径。这是默认设置。)
但是,当我运行npm run echo /salad
时,我得到/* /salad
并没有帮助。似乎正在使用默认值,添加一个空格,然后添加参数。
当我提供参数时如何获得/salad
,而当我不提供参数时如何获得/*
?
答案 0 :(得分:2)
npm脚本参数仅附加到末尾,因此它们将无法正确解析数字变量,例如$1
。
要解析此类变量,可以将脚本包装在Shell函数中,然后执行该函数。试试这个:
scripts: {
"echo": "run(){ echo ${1-'/*'}; }; run"
}
或者,仅在脚本中使用命名变量,而不是数字变量。