Разница между "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
)