Programing

NPM 스크립트를 순차적으로 실행

crosscheck 2020. 7. 30. 09:52
반응형

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 명령 사전 / 사후 수정을 사용하면 순차적으로 시작되지만 실행하기 전에 부모 스크립트가 끝날 때까지 기다리지 않습니다. 유일한 해결책은 다음과 같다고 가정합니다 : async.series 도우미 함수에서 쉘 명령을 실행할 때 Gulp 작업을 순차적으로 실행하려면 어떻게합니까? ? Gulp 로이 작업을 수행 할 수 있다는 것을 알고 있지만 NPM을 사용하여 기능을 탐색하고 싶습니다. 도움을 주셔서 감사합니다!


npm run을 통해 이러한 스크립트를 호출하고 이중 앰퍼샌드로 연결하십시오 &&.

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

설명:

  • &&순차적 실행 에는 (더블 앰퍼샌드)를 사용하십시오 .
  • &병렬 실행 에는 (단일 앰퍼샌드)를 사용하십시오 .

다른 스크립트로 문자열을 묶을 수 있습니다. "start": "pre-build && build_logic && post_build && exit"


Mobiletainment의 위대한 @ 다음 대답 , 당신은 또한 사용할 수 있습니다 -NPM-실행 모든 명령이 훨씬 짧은 훨씬 더 읽기 쉽게 만들 수 있습니다. 귀하의 경우 :

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

run-snpm-run-all제공된 모든 npm 스크립트를 순차적으로 실행 하는 바로 가기를 제공하므로 -s( run-s는 더 짧은 버전입니다 npm-run-all -s).


당신은 당신의 스크립트를 앞에 수 prepost그래서 그들은 자동으로 실행됩니다 :

"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

참고 URL : https://stackoverflow.com/questions/39172536/running-npm-scripts-sequentially

반응형