Подтвердить что ты не робот

Выполнение сценариев NPM последовательно

Скажем, у меня

"scripts": {
    "pre-build": "echo \"Welcome\" && exit 1",
    "build_logic": "start cmd.exe @cmd /k \"yo esri-appbuilder-js:widget && exit 1\"",
    "post_build":  "start C:\\WebAppBuilderForArcGIS\\startupShortcut",
    "exit" : "start cmd.exe @cmd /k \"echo \"goodbye\" && exit 1\""
  },

какую команду NPM можно запустить, чтобы все эти сценарии запускались последовательно. Когда я использую pre/post fixing, они запускаются последовательно, но они не ждут завершения родительского script перед выполнением. Я предполагаю, что единственное решение похоже: Как мне получить задачи Gulp для последовательного запуска при запуске команд оболочки в вспомогательной функции async.series?? Я знаю, что это можно сделать с помощью Gulp, но я хотел бы придерживаться NPM, чтобы изучить его возможности. Спасибо за любую помощь!

4b9b3361

Ответ 1

Вызовите эти скрипты с помощью npm run и соедините их с двойным амперсандом &&:

npm run pre-build && npm run build_logic && npm run post_build && npm run exit

Пояснение:

  • Для последовательного выполнения используйте && (двойной амперсанд).
  • Для параллельного выполнения используйте & (одиночный амперсанд).

Ответ 2

Вы можете просто вставить их в другой script. "start": "pre-build && build_logic && post_build && exit"

Ответ 3

После отличного ответа @Mobiletainment вы также можете использовать npm-run-all, чтобы сделать команду намного короче и более читабельной. В твоем случае:

"scripts": {
    ...
    "build": "run-s pre-build build_logic post_build exit"
}

run-s - это ярлык npm-run-all, который последовательно запускает все заданные npm -s сценарии, следовательно, -s (run-s - более короткая версия npm-run-all -s),

Ответ 4

Вы можете использовать префиксы pre и post префикса, чтобы они выполнялись автоматически:

"scripts": {
  "prebuild": "echo \"Welcome\" && exit 1",
  "build": "start cmd.exe @cmd /k \"yo esri-appbuilder-js:widget && exit 1\"",
  "postbuild":  "start C:\\WebAppBuilderForArcGIS\\startupShortcut",
  "exit" : "start cmd.exe @cmd /k \"echo \"goodbye\" && exit 1\""
}

затем запустить npm run build