javascript - specific - npm update
Ejecutar secuencias de comandos NPM secuencialmente (4)
Invoque estos scripts a través de npm run y encadénelos con doble ampersand
&&
:
npm run pre-build && npm run build_logic && npm run post_build && npm run exit
Explicación:
-
Use
&&
(doble ampersand) para ejecución secuencial. -
Utilice
&
(ampersand simple) para ejecución paralela.
Digamos que tengo
"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/""
},
¿Qué comando NPM puedo ejecutar para permitir que todos estos scripts se ejecuten secuencialmente? Cuando uso la corrección previa / posterior, se inician secuencialmente pero no esperan a que el script principal termine antes de ejecutarse. Supongo que la única solución es: ¿Cómo hago que las tareas de Gulp se activen secuencialmente al disparar comandos de shell en una función auxiliar async.series? ? Sé que esto se puede hacer con Gulp, pero me gustaría seguir con NPM por ahora para explorar sus capacidades. ¡Gracias por cualquier ayuda!
Podrías encadenarlos en otro script.
"start": "pre-build && build_logic && post_build && exit"
Puede prefijar sus scripts
pre
y
post
para que se ejecuten automáticamente:
"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/""
}
luego ejecuta
npm run build
Siguiendo la excelente answer @ Mobiletainment, también puede usar npm-run-all para hacer que el comando sea mucho más corto y mucho más legible. En tu caso:
"scripts": {
...
"build": "run-s pre-build build_logic post_build exit"
}
run-s
es un acceso directo que proporciona
npm-run-all
, que ejecuta todos los npm-scripts dados secuencialmente, de ahí el
-s
(
run-s
es una versión más corta de
npm-run-all -s
).