npm install встановлює залежність у вашому config.json config.
npm run build запускає скрипт "build" та створив сценарій, який запускає вашу програму - скажімо, server.js
npm start запускає сценарій "start", який потім буде "node server.js"
Важко точно сказати, в чому проблема, але в основному, якщо ви подивитеся на конфігурацію сценаріїв, я б припустив, що "build" використовує якийсь інструмент збирання для створення програми, тоді як "start" передбачає, що збірка була зроблена, але потім не вдасться, якщо файлу немає.
Напевно, ви використовуєте bower або grunt - я, мабуть, пам’ятаю, що типовий додаток для grunt визначав ці сценарії, а також «чистий» сценарій для видалення останньої збірки.
Інструменти побудови, як правило, створюють файл у папці bin /, dist / або build /, яку потім запускає сценарій запуску - наприклад, "node build / server.js". Якщо ваш npm startзбій не вдається, можливо, через те, що ви зателефонували npm cleanабо схоже, щоб видалити останню збірку, щоб файл вашої програми відсутній, викликаючи збій npm.
Вихідний код npm build - торкніться обговорення в цьому запитанні - це в github, щоб ви могли подивитися, якщо вам подобається. Якщо ви запускаєте npm buildбезпосередньо, і у вас визначений сценарій "build", він вийде з помилкою з проханням викликати ваш сценарій збірки, npm run-script buildтому що це не те саме, що npm run script.
Я не зовсім впевнений, що npm buildробить, але, схоже, це пов’язано із сценаріями після встановлення та упаковки залежно. Я припускаю, що це може бути впевненим, що будь-які бібліотеки побудови сценаріїв CLI або рідні бібліотеки, необхідні залежностям, будуються для конкретного середовища після завантаження пакету. Це буде причиною посилання та встановлення виклику цього сценарію.