記事の対象者
- 上記「Node.jsの教科書」を読み進めている人
- Node.js + Eclipse + Nodeclipse + Heroku
- Git はなんとなくわかるができればSource Tree を使いたい
http://qiita.com/hkusu/items/e46de8c446840c50aefe
Node.js + Eclipse + Nodeclipse の準備
参考リンク:http://qiita.com/suesan/items/7f2c4863feb87a623517
基本的には教科書にしたがって実行すればよいです。ただし注意点してほしいのはつ次の手順は行ってはいけない模様。「Help → Eclipse Market → Nodeclipse 1.01を入れる」はダメ。これは別物で、後述するトラブルにつながる。正しくは「Help → Install New Software → http://dl.bintray.com/nodeclipse/nodeclipse/を指定」
Nodeclipse 1.01 を入れてしまうと「build.gradle」というファイルが自動でプロジェクト内に生成されるが、このファイルが原因で Heroku へのPush ができなくなる。なので、あくまで上記手順を実施すること。
フォルダ内のファイルの準備
Eclipse でプロジェクトを作成すると上記のファイルが自動的に生成される。基本的にはこれを活用することができる。ただしいくつか変更と、ファイルの追加が必要。
変更
1 2 3 4 5 6 |
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(process.env.PORT || 5000);//←ここが大事。これに変更する。 console.log('Server running at http://127.0.0.1:1337/'); |
IPアドレスとポートの指定を上記のように変更する。
ファイルの追加
Procfileを作成し、フォルダに追加する。Sublime Text 2 を使っているのであれば、File → New で新しいタブを開き、以下のように記述し、save → ファイル名を「Procfile(拡張子はつけない)」としてフォルダ内に配置する。
内容は次のようにする。hello-world-server.js の部分に最初に実行するファイル名をけば良い。
1 |
web node hello-world-server.js //最初に実行するファイル名 |
注意
私の環境では、Textファイルの拡張子を削除しただけではProcfileとして認識されなかった。また同フォルダ内にある package.json をコピーして拡張子を削除しても認識されなかった。Sublime Text等、エディターを使ってファイルを作るのがベストだと思われる。
その他のファイルの内容
その他のファイルの内容については、さしあたって変更しなくても動く模様。package.json には様々な設定を書くようだ。特にモジュール(ライブラリ)を使っている場合には注意。ただし、今回はEclipse で作成したデフォルトのプロジェクトを実行することだけに注力する。
Heroku のアカウントをとる
これは普通にできると思います。
Heroku Toolbelt をいれる
指示に従ってHeroku Toolbeltをダウンロードしてインストールする。アプリケーションやアドオンをマネージしたりスケールするために使用する。
次にMacならターミナルで以下のコマンドを実行していく。heroku コマンドと gitを使うためにこの承認が必要。Heroku で使ったメールアドレスとパスワードで認証してください。
1 2 3 4 5 |
$ heroku login Enter your Heroku credentials. Email: zeke@example.com Password: ... |
Source Tree を使ってHerokuにデプロイする
Git と Source Tree に関しては上記の本が学習に最適で、私もこれを使って理解できた。Git はプログラムを書く以上必須になるので、学習をおすすめしたい。
ここから、プロジェクトのあるフォルダを指定して、その場所をローカルリポジトリとする。cd はターミナルのコマンドラインで、指定したディレクトリ(フォルダ)へ移動する。このさいパスを指定するのが簡単になる方法がある。Mac でoption + command + c でフォルダをコピーすると、そのフォルダへの「パス」が取得できる。これをcommand + v でターミナルにペーストすればよい。上記の「プロジェクトのディレクトリへのパス」の場所に指定すれば良い。
1 |
cd プロジェクトのディレクトリへのパス |
1 |
git init |
giti init で今いるディレクトリをローカルリポジトリにする。
Herokuにアプリを作る。これが自分のソースコードを受け取るところ
(createの後ろに任意の文字列を付けることでURLを好きなものにできる)
1 |
$ heroku create neralt |
これをした瞬間にherokuにリモートリポジトリができると同時に、ローカルのリポジトリとも関連付けが起きる。この時点でクラウド上のHerokuにneraltというアプリができた。中身はまだ空。
デプロイ ステージに追加、コミット、プッシュ
次にロカールリポジトリを Heroku アプリのためのリモートリポジトリにデプロイする。デプロイとはウェブアプリケーションを本番環境に配置すること。Heroku ではHeroku のリモートリポジトリに Push することでデプロイできる。つまり、基本的には Git の操作である。
=====以下ソースツリーでも可能
git add . //ステージに追加
git commit -m “コメント内容” //コミット
git push heroku master //プッシュ
=====
ソースツリーからは、まずディレクトリを「開く」コマンドで開くことで、ソースツリーに既存のリポジトリを追加できる。
これでエラーがでなければ、Push = デプロイ成功。
成功すれば、heroku open でブラウザ上で開くことができる。
ejs等のモジュールを使ったプロジェクトのデプロイ
モジュールを使う場合のポイントは、package.json内の「dependencies=必要なモジュール」の欄に必要なモジュール、ここではejsが記録されていないといけない。
これは手書きでやらなくても以下のコマンドでモジュールをカレントディレクトリに作成するとともに、package.jsonに記入までしてくれる。プロジェクトまでカレントディレクトリを移動して、
npm install ejs –save
expressを活用する場合はこちら
node.js express node app.jsでなぜ起動できないか
One comment