Используйте отдельный файл для «сценариев» - PullRequest
2 голосов
/ 08 апреля 2019

В моем файле 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 ]

1 голос
/ 08 апреля 2019

Вы можете создать отдельный скрипт следующим образом

сценарий оболочки

if [ $1 == "1" ]; then
        sh <path to script1>
elif [ $1 == "2"]; then
        sh <path to script2>
else
        echo "script does not exist"
fi

Node Script

{
    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
1 голос
/ 08 апреля 2019

Это распространенная проблема, когда ваш package.json раздут от слишком большого количества скриптов.Существует довольно хорошее решение, построенное Кентом Доддсом, которое называется NPS (npm-package-scripts).К сожалению, решений для этой проблемы не так много.

PRO: вы определяете сценарий в файле js, чтобы обеспечить большую гибкость, уменьшить беспорядок в вашем package.json, хорошая поддержка сообщества.

CON: не так много, просто другая команда (nps против npm)

...