update node last node.js npm npm-install

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 que npm run install
  • npm install instala las dependencias package.json , luego ejecuta el package.json scripts.install
    • (Esencialmente llama a npm run install después de npm run install dependencias.
  • npm run install solo ejecuta el package.json scripts.install , no instalará dependencias .
  • npm build solía ser un comando válido (solía ser lo mismo que npm 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.