npm install
instala as dependências em sua configuração package.json.
npm run build
executa o script "build" e cria um script que executa seu aplicativo - digamos server.js
npm start
executa o script "start" que será "node server.js"
É difícil dizer exatamente qual era o problema, mas basicamente se você olhar para a configuração de seus scripts, eu acho que "build" usa algum tipo de ferramenta de construção para criar seu aplicativo, enquanto "start" assume que a construção foi feita, mas falha se o arquivo não está lá.
Você provavelmente está usando o bower ou o grunt - pareço lembrar que um aplicativo grunt típico terá definido esses scripts, bem como um script "limpo" para excluir a última compilação.
As ferramentas de construção tendem a criar um arquivo em uma pasta bin /, dist / ou build / que o script de início chama - por exemplo, "node build / server.js". Quando o seu npm start
falha, provavelmente é porque você chamou npm clean
ou algo semelhante para excluir a compilação mais recente, de forma que o arquivo do aplicativo não esteja presente, causando a falha do npm.
O código-fonte do npm build - para tocar na discussão desta questão - está no github para você dar uma olhada, se desejar. Se você executar npm build
diretamente e tiver um script de "construção" definido, ele sairá com um erro solicitando que você chame seu script de construção, npm run-script build
pois não é o mesmo quenpm run script
.
Não tenho certeza do que npm build
significa, mas parece estar relacionado a scripts de pós-instalação e empacotamento em dependências. Presumo que isso pode ser feito para garantir que quaisquer scripts de compilação CLI ou bibliotecas nativas exigidas pelas dependências sejam construídas para o ambiente específico após o download do pacote. É por isso que o link e a instalação chamam esse script.