node.js - node - npm update
¿Cuál es la diferencia entre npm install y npm run build? (4)
La principal diferencia es ::
npm install es un comando npm cli que hace lo predefinido, es decir, como lo escribió Churro, para instalar las dependencias especificadas dentro de package.json
npm run nombre-comando o npm run-script nombre-comando ( ej. npm run build) también es un comando cli predefinido para ejecutar sus scripts personalizados con el nombre especificado en lugar de "nombre-comando". Entonces, en este caso, npm run build es un comando de script personalizado con el nombre "build" y hará cualquier cosa especificada dentro de él (por ejemplo echo ''hello world'' dado en el siguiente ejemplo package.json).
Ponits a tener en cuenta ::
1) Una cosa más,
npm build
y
npm run build
son dos cosas diferentes que
npm build
hará según lo escrito por Churro, pero
npm run build
hará un trabajo personalizado escrito dentro de
package.json
2) Y
npm build
y
npm run build
no son lo mismo.
Lo que quiero decir es que no puede especificar algo dentro del
npm run build
compilación personalizada (
npm run build
) y esperar que
npm build
haga lo mismo.
Intente lo siguiente para verificar en su
package.json
:
{
"name": "demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"build":"echo ''hello build''"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {},
"dependencies": {}
}
y ejecute
npm run build
y
npm build
uno por uno y verá la diferencia.
Para obtener más información sobre los comandos, le recomendaría que siga la
documentación de npm
.
¡¡Aclamaciones!!
¿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 se
npm install
, pero, al ejecutar
npm run build
, funciona bien.
¿Cómo difiere el funcionamiento interno de estos dos objetivos, a saber,
install
y
run build
?
MNP en 2019
npm build
ya no existe.
Debe llamar a
npm run build
ahora.
Más información a continuación.
TLDR;
npm install
: instala dependencias, luego llama a la
install
desde el campo de
scripts
package.json
.
npm run build
: ejecuta el campo de compilación desde el campo de
scripts
package.json
.
Campo de secuencias de comandos NPM
https://docs.npmjs.com/misc/scripts
Hay muchas cosas que puede poner en el campo de scripts npm
package.json
.
Consulte el enlace de documentación más arriba sobre el ciclo de vida de las secuencias de comandos: la mayoría tiene ganchos previos y posteriores que pueden ejecutar secuencias de comandos antes / después de instalar, publicar, desinstalar, probar, iniciar, detener, encoger, versión.
Para complicar las cosas
-
npm install
no es lo mismo quenpm run install
-
npm install
instala las dependenciaspackage.json
, luego ejecuta elpackage.json
scripts.install
-
(Esencialmente llama a
npm run install
después denpm run install
dependencias.
-
(Esencialmente llama a
-
npm run install
solo ejecuta elpackage.json
scripts.install
, no instalará dependencias . -
npm build
solía ser un comando válido (solía ser lo 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?
npm WARN build npm build called with no arguments. Did you mean to npm run-script build?
Puede leer más sobre la documentación: https://docs.npmjs.com/cli/build
npm install
instala dependencias en el directorio
node_modules/
, para el proyecto de nodo en el que está trabajando.
Puede llamar a
install
en otro proyecto node.js (módulo) para instalarlo como una dependencia para su proyecto.
npm run build
es un alias para
npm build
, y no hace nada a menos que especifique lo que hace "build" en su archivo package.json.
Le permite realizar cualquier tarea de construcción / preparación necesaria para su proyecto, antes de que se use en otro proyecto.
Se llama a
build
por
link
e comandos de
install
, de acuerdo con
la documentación de build
:
Este es el comando de plomería llamado por npm link y npm install.
-
npm install
instala las dependencias en su configuración package.json. -
npm run build
ejecuta el script "build" y crea un script que ejecuta su aplicación, digamos server.js -
npm start
ejecuta el script "start" que luego será "node server.js"
Es difícil decir exactamente cuál era el problema, pero básicamente si observa la configuración de sus scripts, supongo que "build" usa algún tipo de herramienta de compilación para crear su aplicación, mientras que "start" asume que la compilación se ha realizado, pero luego falla si El archivo no está allí.
Probablemente esté utilizando Bower o Grunt. Parece recordar que una aplicación típica de Grunt 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 el script de inicio llama, por ejemplo, "node build / server.js".
Cuando falla el
npm start
, es probable que haya llamado a
npm clean
o similar para eliminar la última compilación, por lo que el archivo de la aplicación no está presente, lo que hace que npm start falle.
El código fuente de npm build, para tocar la discusión en esta pregunta, está en github para que lo eche un vistazo si lo desea.
Si ejecuta
npm build
directamente y tiene un script "build" definido, se cerrará con un error pidiéndole que llame a su script de compilación como
npm run-script build
por lo que no es lo mismo que
npm run script
.
No estoy muy seguro de lo que hace
npm build
, pero parece estar relacionado con las secuencias de comandos postinstall y de empaquetado en las dependencias.
Supongo que esto podría estar asegurando que los scripts de compilación de CLI o las bibliotecas nativas requeridas por las dependencias se construyan para el entorno específico después de descargar el paquete.
Esta será la razón por la cual vincular e instalar llama a este script.