creando un archivo .bat con el comando npm install


81

Creé el siguiente archivo

//npminstall.bat

npm install
echo hello

Cuando ejecuto el siguiente comando desde la línea de comandos de Windows 10 (DOS) npminstall.bat, el npm installcomando se activa, pero echo hellono se activa. Intenté poner un semi-color después de la primera línea de esta manera npm install;, pero todo lo que hice fue darme las instrucciones de ayuda de npm.

¿Cómo hago echo hellopara que se dispare la segunda línea después del npm install?

Notas adicionales

He descubierto que esto también causa el mismo comportamiento:

//npminstall.bat

webpack
echo hello

Creo que es porque tanto el npm installcomando como el webpackcomando toman tiempo para ejecutarse, y durante ese tiempo, hay algo que no espero en la segunda línea.

Seguimiento 2

//npminstall.bat

START /WAIT npm install
echo hello

Esto parece hacer casi lo que quiero hacer. Excepto que el comando npm install provoca una ventana emergente, y tengo que cerrar la ventana emergente antes de que continúe la ejecución para hacer eco de hola mundo. ¿Puedo deshacerme de la ventana emergente?

Respuestas:


181

Cuando accede a otro archivo por lotes desde un archivo por lotes, debe utilizar el comando CALL para devolver el control al proceso principal; de lo contrario, el control se pasa al archivo por lotes que se está ejecutando.

call npm install

1
¡Eres un salvavidas! Estoy tratando de construir angular en jenkins y el script nunca pasó de la instalación de npm hasta que agregué la 'llamada'.
Ralph Ritoch

Esto permite que se ejecute la secuencia de comandos, pero el archivo por lotes ya no detectará errores. Por lo tanto, si algo se rompe, por ejemplo, npm build, el archivo por lotes simplemente continuará. ¿Alguna solución para este problema?
muffin

3
Noté que llamar a npm también apaga el eco . Tuve que solucionar esto siguiendo el call npm installcon@echo on
Wyck
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.