내가 가지고 있다고 가정 해 봅시다
"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
설명:
&&
순차적 실행 에는 (더블 앰퍼샌드)를 사용하십시오 .&
병렬 실행 에는 (단일 앰퍼샌드)를 사용하십시오 .
답변
Mobiletainment의 위대한 @ 다음 대답 , 당신은 또한 사용할 수 있습니다 -NPM-실행 모든 명령이 훨씬 짧은 훨씬 더 읽기 쉽게 만들 수 있습니다. 귀하의 경우 :
"scripts": {
...
"build": "run-s pre-build build_logic post_build exit"
}
run-s
는 npm-run-all
제공된 모든 npm 스크립트를 순차적으로 실행 하는 바로 가기를 제공하므로 -s
( run-s
는 더 짧은 버전입니다 npm-run-all -s
).
답변
다른 스크립트로 문자열을 묶을 수 있습니다. "start": "pre-build && build_logic && post_build && exit"
답변
당신은 당신의 스크립트를 앞에 수 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
답변
당신은 시도 할 수 있습니다:
"scripts": {
"clean-dist": "rm -f ./dist/*.js && rm -f ./dist/*.map",
"build": "npm run clean-dist && parcel build ./packages/index.html"
},
답변
npm-run-all을 사용할 수 있습니다 다른 방법을 많이 여러 명령을 결합
예를 들어, 당신은 당신의에서 다음 스크립트를했다 package.json
:
"scripts": {
"clean": "rimraf dist",
"lint": "eslint src",
"build": "babel src -o lib"
}
다음과 같이 순차적으로 실행할 수 있습니다.
$ npm-run-all clean lint build
여러 개의 npm 명령을 병렬로 실행하는 방법에 대해서는이 질문을 참조하십시오