Qual é a diferença entre npm install e npm run build?
npm install
e npm run build
?
notei no meu projecto que às vezes o MPN começa a falhar quando {[[0]} é executado, mas, ao executar npm run build
, funciona muito bem.
3 answers
npm install
instala dependências na pasta node_modules/
, para o projecto de nó em que está a trabalhar. Você pode ligar para install
em outro nó.js project (módulo), para o instalar como uma dependência do seu projecto.
npm run build
é um nome falso para npm build
, e não faz nada a menos que você especifique o que "build" faz no seu pacote.ficheiro json. Permite-lhe executar todas as tarefas de construção/preparação necessárias para o seu projecto, antes de este ser utilizado noutro projecto.
build
é chamado por link
e install
comandos, de acordo com a documentação para compilar:
Este é o comando de canalização chamado npm link e npm install.
A principal diferença é:
O Npm install é um comando npm cli que faz a coisa predefinida, i. e., Como escrito pelo Churro, para instalar as dependências especificadas dentro pacote.json
Npm executar nome-do-comando ou npm de execução de script nome-do-comando ( ex. o npm executar a compilação ) é também um comando cli predefinido para executar os seus programas personalizados com o nome indicado no lugar de "nome de comando". Então, neste caso npm run build é um comando de script personalizado com o nome "build" e fará qualquer coisa especificado dentro dele (por exemplo echo 'Olá Mundo' apresentado em baixo pacote de exemplo.json).
Ponits to note::
1) só mais Uma coisa, npm build
e npm run build
são duas coisas diferentes npm build
vai fazer, como escrito por Churro, mas npm run build
vai fazer o trabalho personalizado escrito por dentro package.json
2) e npm build
e npm run build
não são iguais. O que eu quero dizer é que você não pode especificar alguma coisa dentro do script custom build (npm run build
) e esperar npm build
fazer o mesmo. Tente seguir a coisa para verificar no seu package.json
:
{
"name": "demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"build":"echo 'hello build'"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {},
"dependencies": {}
}
E corre npm run build
e npm build
um por um e verás a diferença. Para mais informações sobre os comandos, recomendo-lhe que siga a documentação do MPN.
-
npm install
instala as depedendências no seu pacote.JSON config. -
npm run build
executa o script "build" e criou um script que executa a sua aplicação - digamos servidor.js -
npm start
executa o programa" start "que será então "node server".js "
É difícil dizer exatamente qual era o problema, mas basicamente se você olhar para a configuração de seus scripts, eu diria que "build" usa algum tipo de Ferramenta de compilação para criar sua aplicação enquanto "start" assume que a compilação foi feita, mas então falha se o arquivo não está lá.
Você provavelmente está usando bower ou grunt-eu parece lembrar que uma aplicação grunt típica terá definido esses scripts, bem como um script" limpo " para excluir a última compilação.
As ferramentas de Compilação tendem a criar um ficheiro num bin/, dist/, ou compilar/ pasta que o programa inicial chama - por exemplo, "node build/server".js". Quando seu npm start
falha, é provavelmente porque você ligou npm clean
ou similar a apagar a última compilação para que o seu ficheiro de aplicação não esteja presente, fazendo com que o npm comece a falhar.
O código fonte do Npm-para tocar na discussão nesta questão - está em github para você dar uma olhada Se quiser. Se executar npm build
directamente e tiver um programa" build " definido, este irá sair com um erro ao pedir-lhe para chamar o seu programa de compilação como npm run-script build
por isso não é o mesmo que npm run script
.