¿Cuál es la diferencia entre npm install
y npm run build
?
He notado en mi proyecto que a veces npm comienza a fallar cuando npm install
se realiza, pero, al ejecutarse npm run build
, funciona bien.
¿Cómo funciona el funcionamiento interno de estos dos objetivos a saber install
y run build
ser diferente?
node.js
npm
npm-install
BalajiK
fuente
fuente
Respuestas:
npm install
instala las dependencias en elnode_modules/
directorio, para el proyecto de nodo en el que está trabajando. Puede llamarinstall
a otro proyecto (módulo) de node.js para instalarlo como una dependencia para su proyecto.npm run build
es un alias denpm build
, y no hace nada a menos que especifique lo que hace "build" en su archivo package.json. Le permite realizar cualquier tarea de preparación / construcción necesaria para su proyecto, antes de que se utilice en otro proyecto.build
es llamado porlink
yinstall
comandos, de acuerdo con la documentación para construir :fuente
npm run build
y nonpm build
son lo mismo. Volveré a votar si puedes demostrar que son iguales o corregir tu respuesta.npm build
ynpm run build
no son lo mismo. En mi humilde opinión, tal vez la respuesta anterior de @churro deba corregirse. Por favor, corríjame si estoy equivocado. stackoverflow.com/questions/29939697/…NPM en 2019
npm build
ya no existe. Debes llamarnpm run build
ahora. Más información a continuación.TLDR;
npm install
: instala las dependencias, luego llama alinstall
desde elpackage.json
scripts
campo.npm run build
: ejecuta el campo de construcción desde elpackage.json
scripts
campo.Campo de secuencias de comandos de NPM
https://docs.npmjs.com/misc/scripts
Hay muchas cosas que puede poner en el
package.json
campo de scripts npm . Consulte el enlace de documentación anterior más arriba del ciclo de vida de los scripts; la mayoría tiene enlaces previos y posteriores que puede ejecutar scripts antes / después de la instalación, publicación, desinstalación, prueba, inicio, detención, empaquetado, versión.Para complicar las cosas
npm install
no es lo mismo quenpm run install
npm install
instala laspackage.json
dependencias, luego ejecuta elpackage.json
scripts.install
npm run install
después de que se instalen las dependencias.npm run install
solo ejecuta elpackage.json
scripts.install
, no instalará dependencias .npm build
solía ser un comando válido (solía ser el mismo quenpm run build
) pero ya no lo es; ahora es un comando interno. Si lo ejecuta, obtendrá:npm WARN build npm build called with no arguments. Did you mean to npm run-script build?
Puede leer más en la documentación: https://docs.npmjs.com/cli/buildfuente
npm build
ya no existe. Todavía existe en el sentido de que es conocido / especial para npm, porque reacciona con la advertencia que menciona en la parte inferior. Esencialmente, ahora no hace nada. Esta respuesta a otra pregunta dio el resumen más corto en lanpm build
frentenpm run build
.Ponits a tener en cuenta:
1) Una cosa más,
npm build
ynpm run build
hay dos cosas diferentes quenpm build
harán según lo escrito por Churro, peronpm run build
harán un trabajo personalizado escrito dentropackage.json
2) Y
npm build
, ynpm run build
no son los mismos. Lo que quiero decir es que no puede especificar algo dentro delnpm run build
script build ( ) personalizado y esperarnpm build
hacer lo mismo. Intente lo siguiente para verificar en supackage.json
:y corre
npm run build
ynpm build
uno a uno y verás la diferencia. Para obtener más información sobre los comandos, siga la documentación de npm .¡¡Salud!!
fuente
npm run build
ynpm build
. Ok, entonces no son iguales, ¿de qué manera? Entonces, ¿la respuesta de @ Churro es incorrecta?npm build
que sigue siendo un misterio. Sería bueno saber eso. Por lo que yo sé, "npm build
haré lo que escribió Churro" no es cierto. Churro dijo que haría lo que se especifica enpackage.json
elbuild
comando (como se define en lascripts
sección, supongo). Pero eso es lo quenpm run build
hace ynpm build
no ejecuta el comando de compilación especificado en lapackage.json
scripts
sección. A menos que haya alguna otra forma de definir lo que senpm build
debe hacer en elpackage.json
, que no se explica aquí, ni por Churro (ni en los documentos del NPM, creo, tristemente).npm build
dije que npm WARN buildnpm build
llamó sin argumentos. ¿Querías hacerlonpm run-script build
? . Creo que no hizo nada. Después de pasar tiempo para leer todas las respuestas aquí y probar esto yo mismo, todavía no puedo decir cuál es el propósito denpm build
:(.npm install
instala las dependencias en su configuración package.json.npm run build
ejecuta el script "build" y creó un script que ejecuta su aplicación, digamos server.jsnpm start
ejecuta el script "start" que luego será "node server.js"Es difícil saber exactamente cuál fue el problema, pero básicamente si observa la configuración de sus scripts, supongo que "compilar" usa algún tipo de herramienta de compilación para crear su aplicación, mientras que "iniciar" asume que la compilación se ha realizado, pero luego falla si el archivo no está ahí.
Probablemente esté usando bower o gruñido; creo recordar que una aplicación típica de gruñido habrá definido esos scripts así como un script "limpio" para eliminar la última compilación.
Las herramientas de compilación tienden a crear un archivo en una carpeta bin /, dist / o build / que luego llama el script de inicio, por ejemplo, "node build / server.js". Cuando
npm start
falla, probablemente se deba a que llamónpm clean
o similar para eliminar la última compilación, por lo que el archivo de su aplicación no está presente, lo que hace que npm comience a fallar.El código fuente de npm build, para abordar la discusión en esta pregunta, está en github para que lo vea si lo desea. Si tu corres
npm build
directamente y tiene un script de "compilación" definido, se cerrará con un error pidiéndole que llame a su script de compilaciónnpm run-script build
para que no sea lo mismo quenpm run script
.No estoy muy seguro de qué
npm build
es lo que hace, pero parece estar relacionado con los scripts postinstall y empaquetados en dependencias. Supongo que esto podría garantizar que los scripts de compilación de CLI o las bibliotecas nativas requeridas por las dependencias se compilen para el entorno específico después de descargar el paquete. Esta será la razón por la que el enlace y la instalación llaman a este script.fuente