在我的package.json文件中,“脚本”中有很多命令,例如下面的代码。
"scripts" {
"script1": "command example",
"script2": "command example",
"script3": "command example",
"script4": "command example",
"script5": "command example",
"script6": "command example",
"script7": "command example",
...
}
是否可以将这些命令移动到另一个文件?
例如,我正在考虑将它们移动到bin/commands.js
之类的文件中。
答案 0 :(得分:1)
这是一个常见问题,您的package.json从太多脚本中get肿了。 Kent Dodds构建了一个很好的解决方案,称为NPS(npm-package-scripts)。不幸的是,没有很多解决此问题的方法。
PRO:您可以在js文件中定义脚本,从而具有更大的灵活性,可以减少package.json中的混乱情况,并提供良好的社区支持。
CON:不只是一个不同的命令(nps vs npm)
答案 1 :(得分:1)
您可以按照以下步骤创建单独的脚本
shell脚本
if [ $1 == "1" ]; then
sh <path to script1>
elif [ $1 == "2"]; then
sh <path to script2>
else
echo "script does not exist"
fi
节点脚本
{
var exec = require('child-process-promise').exec;
let args = process.argv[2];
let obj = {
"script1": "command example",
"script2": "command example",
"script3": "command example",
"script4": "command example",
"script5": "command example",
"script6": "command example",
"script7": "command example"
}
exec(obj[`script${args}`]).then(result => {
console.log(result.stdout);
})
}
然后在package.json中可以拥有
"scripts": {
"myscript": "script.sh"[or "script.js"]
}
然后将您的脚本用作
npm run myscript 1