对“脚本”使用单独的文件

时间:2019-04-08 05:36:29

标签: javascript npm package.json

在我的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之类的文件中。

2 个答案:

答案 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