Использование npm для запуска приложений Node.js

Существует множество способов запуска приложения Node.js. Какой из них  самый универсальный и подходит для любого приложения?

Давайте запустим приложение:

  • node app.js
  • coffee app.coffee
  • supervise -x ./node_modules/.bin/iced -e js,coffee,iced,jade,styl,css —no-restart-on exit app.iced
  • ./launch.js

Тьфу! И что происходит, когда вы переключаетесь между приложениями? Подождите, а кто будет контролировать: человек или супервизор? Нет, подождите, это приложение CoffeeScript со стандартной загрузкой JavaScript или это приложение express?

Давайте забудем об этой головной боли при помощи запуска через универсальный npm. Для этого нам нужен файл package.json в корне проекта.

Все пакеты npm содержат файл, обычно в корне проекта, который называется package.json— этот файл содержит различные метаданные, относящиеся к проекту. Этот файл используется для предоставления информации,что позволяет  npm идентифицировать проект, а также обрабатывать зависимости проекта. Он также может содержать другие метаданные, такие как описание проекта, версию проекта в определенном дистрибутиве, информацию о лицензии и даже данные конфигурации — все это может иметь жизненно важное значение как для npm, так и для конечных пользователей пакета. Обычно package.jsonфайл находится в корневом каталоге проекта Node.js.

Если нет данного файла, то стоит его сгенерировать через команду:

npm init

Далее открываем файл package.json и добавляем новый параметр с указанием скрипта для запуска:

{
  "name": "myNodeApp",
  "version": "1.0.0",
  "description": "My Node App",
  "main": "index.js",
  "dependencies": {
    "chromedriver": "^2.33.2",
    "nightwatch": "^0.9.16"
  },
  "devDependencies": {},
  "scripts": {
    "start": "node index.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "David Amirkhanov",
  "license": "ISC"
}

Заменяем «node index.js» на все, что вы используете для запуска вашего приложения. Сделайте это для каждого приложения, над которым вы работаете. В следующий раз, когда вам нужно запустить приложение, просто выполните следующее:

npm start

Вот и все, теперь не нужно будет запоминать и вспоминать незамысловатые названия флагов и команд запуска, можно один раз указать и забыть, запуская привычной командой npm.