순차적으로 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 명령어는 다음과 같습니다.사전/사후 수정을 사용하면 순차적으로 실행되지만 실행 전에 상위 스크립트가 완료될 때까지 기다리지 않습니다.유일한 해결책은 다음과 같습니다.비동기.시리즈 도우미 기능으로 셸 명령어를 실행할 때 Gulp 태스크가 순차적으로 실행되도록 하려면 어떻게 해야 합니까?Gulp에서 실행할 수 있다는 것을 알고 있습니다만, 지금은 NPM에서 기능을 검토하고 싶습니다.도와주셔서 감사합니다!
npm run을 통해 다음 스크립트를 호출하고 이중 앰퍼샌드로 체인을 설정합니다.
npm run pre-build && npm run build_logic && npm run post_build && npm run exit
설명:
- 순차 실행에는 (이중 앰퍼샌드)를 사용합니다.
- 병렬 실행에는 (단일 앰퍼샌드)를 사용합니다.
@Mobiletainment의 훌륭한 답변에 이어 npm-run-all을 사용하여 명령어를 훨씬 짧고 읽기 쉽게 만들 수도 있습니다.고객님의 경우:
"scripts": {
...
"build": "run-s pre-build build_logic post_build exit"
}
run-s
숏컷입니다npm-run-all
모든 npm-syslog가 순차적으로 실행되기 때문에-s
(run-s
의 단축판입니다.npm-run-all -s
).
스크립트 접두사를 지정할 수 있습니다.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
그냥 다른 스크립트에 넣을 수도 있어요. "start": "pre-build && build_logic && post_build && exit"
npm-run-all을 사용하면 다양한 방법으로 여러 명령을 조합할 수 있습니다.
예를 들어, 에 다음 스크립트가 있는 경우package.json
:
"scripts": {
"clean": "rimraf dist",
"lint": "eslint src",
"build": "babel src -o lib"
}
다음과 같이 모든 것을 순차적으로 실행할 수 있습니다.
$ npm-run-all clean lint build
여러 npm 명령을 병렬로 실행하는 방법은 이 질문을 참조하십시오.
다음 작업을 수행할 수 있습니다.
"scripts": {
"clean-dist": "rm -f ./dist/*.js && rm -f ./dist/*.map",
"build": "npm run clean-dist && parcel build ./packages/index.html"
},
시퀀셜과 패럴렐 혼합의 예
혼합이 필요한 경우 command_2a와 command_2b를 동시에 실행할 수 있도록 command_1을 먼저 실행하고 완료하기 위해 다음과 같이 합니다.
"dev": "yarn command_1 && (yarn command_2a & yarn command_2b)"
실제 예:
"dev": "yarn buildPackage && (yarn watchPackageSource & yarn watchExamplePage)"
언급URL : https://stackoverflow.com/questions/39172536/running-npm-scripts-sequentially
'sourcecode' 카테고리의 다른 글
SELECT를 사용할 때 MySQL BIT 필드 값을 볼 수 없습니다. (0) | 2022.11.17 |
---|---|
event.prevent Default() 함수가 IE에서 작동하지 않음 (0) | 2022.11.17 |
자바에서는 x++와 ++x의 차이가 있나요? (0) | 2022.11.17 |
MySQL의 그룹화 전 순서 (0) | 2022.11.17 |
각 루프에 비동기/대기 사용 (0) | 2022.11.17 |