npm install
installe les dépendances de votre configuration package.json.
npm run build
exécute le script "build" et crée un script qui exécute votre application - disons server.js
npm start
exécute le script "start" qui sera alors "node server.js"
Il est difficile de dire exactement quelle était le problème, mais fondamentalement si vous regardez votre configuration de scripts, je suppose que "build" utilise un outil de construction pour créer votre application tandis que "start" suppose que la construction a été faite mais échoue si le fichier n'est pas là.
Vous utilisez probablement bower ou grunt - il me semble qu'une application grunt typique aura défini ces scripts ainsi qu'un script "clean" pour supprimer la dernière construction.
Les outils de construction ont tendance à créer un fichier dans un dossier bin/, dist/ ou build/ que le script de démarrage appelle alors - par exemple "node build/server.js". Lorsque votre npm start
échoue, c'est probablement parce que vous avez appelé npm clean
ou similaire pour supprimer la dernière construction, donc votre fichier d'application n'est pas présent, ce qui fait échouer npm start.
Le code source de npm build - pour revenir sur la discussion dans cette question - est sur github pour que vous puissiez le regarder si vous le souhaitez. Si vous exécutez npm build
directement et que vous avez un script "build" défini, il se terminera par une erreur vous demandant d'appeler votre script de construction comme npm run-script build
donc ce n'est pas la même chose que npm run script
.
Je ne suis pas tout à fait sûr de ce que fait npm build
, mais il semble que cela soit lié à des scripts de post-installation et d'emballage dans les dépendances. Je suppose que cela pourrait permettre de s'assurer que des scripts de construction CLI ou des bibliothèques natives requis par les dépendances sont construits pour l'environnement spécifique après le téléchargement du package. C'est pourquoi link et install appellent ce script.
2 votes
La réponse acceptée jusqu'à présent est discutable. Je pense que les réponses de MKP et CTS_AE sont plus pertinentes en ce moment. Avec tout le respect dû, cela devrait être porté à l'attention du modérateur et/ou de celui qui a posé cette question.