Ниже приведены основные шаги, необходимые для быстрого создания приложения Node.js с Express и его развёртывание на Heroku.
Шаг 1 — аккаунт на Heroku
Убедитесь, что у вас есть учётная запись Heroku.
Шаг 2 — установите Heroku Toolbelt
Скачайте и установите пакет Toolbelt для вашей ОС.
OSX
https://toolbelt.heroku.com/osx
Windows
https://toolbelt.heroku.com/windows
Linux
$ wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
Шаг 3 — войдите в свой аккаунт
После установки Toolbelt вы должны получить доступ к своей учётной записи.
$ heroku login
Enter your Heroku credentials.
Email: adam@example.com
Password:
Could not find an existing public key.
Would you like to generate one? [Yn]
Generating new SSH public key.
Uploading ssh public key /Users/adam/.ssh/id_rsa.pub
Вот и всё на этом. Пройдите через эти шаги и вы готовы для развёртывания кода!
Развёртывание первого приложения
На данный момент у вас должно быть приложение, работающее на локальном компьютере. Следующие шаги описывают обновления, которые вам нужно сделать для развёртывания кода.
Обновление package.json
На этом шаге мы должны добавить некоторый код в файл package.json, чтобы мы могли запустить приложение с удалённого сервера.
Прямо сейчас есть хороший шанс, что файл будет выглядеть следующим образом:
{
"name": "application-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"express": "~4.0.0",
"static-favicon": "~1.0.0",
"morgan": "~1.0.0",
"cookie-parser": "~1.0.1",
"body-parser": "~1.0.0",
"debug": "~0.7.4",
"jade": "~1.3.0"
}
}
В конце объекта "dependencies": { ... } вам нужно вставить запятую, чтобы мы могли добавить больше кода. Для начала добавим ключевое слово main:
"main": "app.js",
Обратили внимание на запятую? Она здесь потому, что мы собираемся добавить ещё кое-что. После этого добавьте в объект engines инструменты, которые нужны для запуска этого приложения:
"engines": {
"node": "0.10.26",
"npm": "1.4.3"
}
У вас должно быть что-то вроде следующего:
{
"name": "application-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"express": "~4.0.0",
"static-favicon": "~1.0.0",
"morgan": "~1.0.0",
"cookie-parser": "~1.0.1",
"body-parser": "~1.0.0",
"debug": "~0.7.4",
"jade": "~1.3.0"
},
"main": "app.js",
"engines": {
"node": "0.10.26",
"npm": "1.4.3"
}
}
Не забудьте Grunt + Bower
Если на данный момент у вас нет любого пакета Grunt или Bower в объекте dependenciess, нам надо их получить.
Вы можете добавить их вручную в файле package.json или напрямую:
$ npm install --save grunt
$ npm install --save grunt-sass
$ npm install --save bower
Вероятно у нас нет и возможности развернуть сервер для запуска задач Grunt. Для этого нам потребуется Grunt-CLI.
$ npm install --save grunt-cli
Прямо сейчас вы должны быть довольны.
Инструкции после установки
Когда делаем развёртывание кода на Heroku, мы должны запустить некоторые команды, в основном установить пакеты Bower и выполнить задачи Grunt. Чтобы сделать это, мы должны добавить инструкции внутри объекта scripts файла package.json.
Непосредственно поcле "start": "node ./bin/www" добавьте:
"postinstall": "./node_modules/.bin/bower install && ./node_modules/.bin/grunt"
Теперь у нас есть всё что нужно, чтобы Heroku установил пакеты и запустил скрипты.
Добавление Procfile
Это файл, который необходим Heroku для запуска приложения.
$ touch Procfile
Добавьте в него следующий код:
web: npm start
Heroku будет использовать это для запуска приложения.
Создание хранилища Git
Важно сделать хранилище Git до создания сервера Heroku. ПОДОЖДИТЕ! Прежде, чем вы сойдёте с ума на Git, есть некоторые вещи, которые мы должны сделать.
У вас должен быть файл .gitignore в вашем хранилище на данный момент. Откройте его и убедитесь, что вы игнорируете все node_modules, все bower_components и что-то в диапазоне /stylesheets/*.css.
node_modules
public/stylesheets/*.css
bower_components
Отлично. Теперь вы можете сделать git init своего хранилища.
$ git add .
$ git commit -m "initial commit"
Не обязательно в данное время делать это хранилище Github, но вы можете пожелать сделать его при создании реального приложения.
Развёртывание кода
Это довольно сложно. Убедитесь, что следуете данным командам:
$ heroku create <название приложения>
$ git push heroku master
Радуйтесь
Если всё хорошо, вы должны увидеть, что вам вернулось нечто вроде этого:
http://<название приложения>.herokuapp.com/ deployed to Heroku
Переходите по этому адресу и радуйтесь!