Herokuに手っ取り早く静的サイトをデプロイする(node版)

  • 34
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

index.htmlをデプロイするだけなら 'touch index.php;', 'echo 'php_flag engine off' > .htaccess' が最速なんだけど、ルートディレクトリに静的アセットを起きたくないという理由でなんか嫌だった。

Rubyの人ならrack upするアプリ書くんだろうけど、nodeでビルドツール使いまくったリポジトリなので、nodeでやる。

npmとrubyとheroku toolbelt が入ってるのを前提。

環境構築

npmからexpressだけ入れとく。

npm init # package.jsonがないなら
npm install express --save

package.jsonに追記

  "engines": {
    "node": "0.10.x"
  },

node v0.10系を使えという指定

server.js

var express = require('express')
  , http = require('http')
  , app = express()
  ;
app.use(express.static(__dirname + '/public'));
var port = process.env.PORT || 5000;
var server = http.createServer(app).listen(port);

buildのところがホストしたいindex.htmlを含むディレクトリ

Procfile

web: node server.js

Foreman 入れて動作確認する

gem install foreman
foreman start

localhost:5000で動いれてればおk

ディレクトリはたぶんこうなってる

- .git
- .gitignore
- package.json
- server.js
- public/ # index.html等、ホストするファイルを含むディレクトリ
- Procfile

node_modulesとかは適宜.gitignore してください

デプロイ

git init; git add .; git commit -m"init" # もしやってないなら
heroku create 
git push heroku master
heroku ps:scale web=1 # dynoの数を1 に
heroku open # ブラウザで開く

動いた