¿Cuál es la diferencia entre npm instally npm run build?
He notado en mi proyecto que a veces npm comienza a fallar cuando npm installse realiza, pero, al ejecutarse npm run build, funciona bien.
¿Cómo funciona el funcionamiento interno de estos dos objetivos a saber instally run buildser diferente?
node.js
npm
npm-install
BalajiK
fuente
fuente

Respuestas:
npm installinstala las dependencias en elnode_modules/directorio, para el proyecto de nodo en el que está trabajando. Puede llamarinstalla otro proyecto (módulo) de node.js para instalarlo como una dependencia para su proyecto.npm run buildes 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.buildes llamado porlinkyinstallcomandos, de acuerdo con la documentación para construir :fuente
npm run buildy nonpm buildson lo mismo. Volveré a votar si puedes demostrar que son iguales o corregir tu respuesta.npm buildynpm run buildno 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 buildya no existe. Debes llamarnpm run buildahora. Más información a continuación.TLDR;
npm install: instala las dependencias, luego llama alinstalldesde elpackage.jsonscriptscampo.npm run build: ejecuta el campo de construcción desde elpackage.jsonscriptscampo.Campo de secuencias de comandos de NPM
https://docs.npmjs.com/misc/scripts
Hay muchas cosas que puede poner en el
package.jsoncampo 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 installno es lo mismo quenpm run installnpm installinstala laspackage.jsondependencias, luego ejecuta elpackage.jsonscripts.installnpm run installdespués de que se instalen las dependencias.npm run installsolo ejecuta elpackage.jsonscripts.install, no instalará dependencias .npm buildsolí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 buildya 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 buildfrentenpm run build.Ponits a tener en cuenta:
1) Una cosa más,
npm buildynpm run buildhay dos cosas diferentes quenpm buildharán según lo escrito por Churro, peronpm run buildharán un trabajo personalizado escrito dentropackage.json2) Y
npm build, ynpm run buildno son los mismos. Lo que quiero decir es que no puede especificar algo dentro delnpm run buildscript build ( ) personalizado y esperarnpm buildhacer lo mismo. Intente lo siguiente para verificar en supackage.json:y corre
npm run buildynpm builduno 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 buildynpm build. Ok, entonces no son iguales, ¿de qué manera? Entonces, ¿la respuesta de @ Churro es incorrecta?npm buildque sigue siendo un misterio. Sería bueno saber eso. Por lo que yo sé, "npm buildharé lo que escribió Churro" no es cierto. Churro dijo que haría lo que se especifica enpackage.jsonelbuildcomando (como se define en lascriptssección, supongo). Pero eso es lo quenpm run buildhace ynpm buildno ejecuta el comando de compilación especificado en lapackage.jsonscriptssección. A menos que haya alguna otra forma de definir lo que senpm builddebe hacer en elpackage.json, que no se explica aquí, ni por Churro (ni en los documentos del NPM, creo, tristemente).npm builddije que npm WARN buildnpm buildllamó 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 installinstala las dependencias en su configuración package.json.npm run buildejecuta el script "build" y creó un script que ejecuta su aplicación, digamos server.jsnpm startejecuta 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 startfalla, probablemente se deba a que llamónpm cleano 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 builddirectamente 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 buildpara que no sea lo mismo quenpm run script.No estoy muy seguro de qué
npm buildes 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