运行 带有可选参数的 npm 脚本
Run npm script with optional params
我想要 运行 一个 npm 脚本,它接受可选的参数,并为未传递的参数的默认值提供回退,
例如:
我在 pacakge.json:
中定义了这个“示例”脚本
"scripts": {
"example": "echo input"
},
我想传入"input"作为参数意思是:
如果我 运行 npm run example --input=true
那么它会输出 true
如果我 运行 npm run example
没有参数那么它会输出 false
我修改了 pacakge.json
以接受 input
参数:
"scripts": {
"example": "echo %npm_config_input%"
},
现在当我 运行 npm run example --input=true
或 npm run example --input=false
我分别得到 'true' 或 'false',但是当我 运行 npm run example
时,我得到的结果是 %npm_config_input%
.
我想给参数一个默认值,这样当它没有显式传递时 - 默认值将被使用,类似于:
"scripts": {
"example": "echo %npm_config_input% || 'false'"
},
因此运行宁npm run example
将导致'false'
这可能吗?
您可以使用 https://www.npmjs.com/package/@naholyr/cross-env 包来实现它,它支持变量的默认值。最重要的是,它将使您的脚本 OS-agnostic。方法如下:
"scripts": {
"example": "cross-env INPUT=${npm_config_input:false} npm run _example",
"_example": "cross-env command $INPUT"
},
出于我未知的原因,使用 echo
作为 command
将 不 打印变量值。但是我成功地将此模式用于 运行 sass
带有参数和回退值,如果没有传递参数的话。
我想要 运行 一个 npm 脚本,它接受可选的参数,并为未传递的参数的默认值提供回退,
例如:
我在 pacakge.json:
中定义了这个“示例”脚本 "scripts": {
"example": "echo input"
},
我想传入"input"作为参数意思是:
如果我 运行 npm run example --input=true
那么它会输出 true
如果我 运行 npm run example
没有参数那么它会输出 false
我修改了 pacakge.json
以接受 input
参数:
"scripts": {
"example": "echo %npm_config_input%"
},
现在当我 运行 npm run example --input=true
或 npm run example --input=false
我分别得到 'true' 或 'false',但是当我 运行 npm run example
时,我得到的结果是 %npm_config_input%
.
我想给参数一个默认值,这样当它没有显式传递时 - 默认值将被使用,类似于:
"scripts": {
"example": "echo %npm_config_input% || 'false'"
},
因此运行宁npm run example
将导致'false'
这可能吗?
您可以使用 https://www.npmjs.com/package/@naholyr/cross-env 包来实现它,它支持变量的默认值。最重要的是,它将使您的脚本 OS-agnostic。方法如下:
"scripts": {
"example": "cross-env INPUT=${npm_config_input:false} npm run _example",
"_example": "cross-env command $INPUT"
},
出于我未知的原因,使用 echo
作为 command
将 不 打印变量值。但是我成功地将此模式用于 运行 sass
带有参数和回退值,如果没有传递参数的话。