Разница между "npm start" и `node app.js`, при запуске приложения?

Я установил приложение, используя команду express new 'filename'. Я только что узнал, что вы можете запустить приложение, используя:

npm start

До сих пор я использовал:

node app.js

чтобы запустить мой сервер. Кто-нибудь знает, какая разница между этими двумя? Спасибо.

Ответ 1

На странице man, npm start:

запускает пакет "start" script, если он был предоставлен. Если версия не указана, она запускает "активную" версию.

По общему признанию, это описание совершенно бесполезно и что все это говорит. По крайней мере, это более документировано, чем socket.io.

Во всяком случае, что действительно происходит, так это то, что npm выглядит в вашем файле package.json, и если у вас есть что-то вроде

"scripts": { "start": "coffee server.coffee" }

тогда он это сделает. Если npm не может найти ваш старт script, он по умолчанию:

node server.js

 

Ответ 2

Обновлена ​​документация . Мой ответ ничем не отличается от принятого ответа, но я хотел отразить документацию в актуальном состоянии, и принятый ответ содержит несколько сломанных ссылок, и почему-то я не понял, когда принятый ответ сказал: "Он по умолчанию равен node server.js". Я думаю, что документация теперь очень ясна:

NPM-старт

Запустите пакет

Описание

npm start [-- <args>]

Описание

Выполняется произвольная команда , указанная в пакете start "свойство его объекта <scripts. Если не указано свойство" start" на объекте scripts он будет работать node server.js.

Таким образом, запуск npm start может сделать одну из двух вещей:

  • Запустите произвольную команду (т.е. если такая команда указана в свойстве start объекта package.json scripts)
  • Иначе, если не существует свойства start: запустите node server.js, (что может быть неприемлемо, например, OP работает node app.js)