59
59

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Node.js で開発環境を整える

Last updated at Posted at 2014-08-30

開発に集中するための諸設定をば。ログまわりは以下に書いた。

コードを書き換えたら自動的に再起動させる

node-supervisor を使う。

こんな感じ。

npm install supervisor
./node_modules/.bin/supervisor app.js

監視対象の拡張子を -e オプションで指定できる。デフォルトは node,js 。 json ファイルを追加したい場合、以下のようにする。

./node_modules/.bin/supervisor -e node,js,json app.js

無視するファイルとディレクトリの指定は -i オプション。 npm installnpm prune したときにすごい勢いで再起動がかかるのを避けるにはこうする。

./node_modules/.bin/supervisor -i node_modules app.js

似たようなことをするのがいくつかあるけど supervisor が一番よかった。

デバッグに Google Chrome の開発者ツールを使う

node-inspector を使う。

以下を打つ。

npm install node-inspector
node-debug app.js

するとこんなんが出てくるので、表示されている URL を Google Chrome で開く。

Node Inspector is now available from http://localhost:8080/debug?port=5858

これでクライアント js と同じようにデバッグできる。

npm run-script で自動化する

./node_modules/.bin/supervisor app.js なんて長くていちいち打ってられない。そんなときに楽できるのが package.json で定義できるコマンドエイリアス。 package.json の scripts に書かれたコマンドを npm run-script <scriptname> で起動できる。

以下のような package.json を用意しておく。

package.json
{
  "name": "app",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "NODE_ENV=production node ./app.js",
    "dev": "NODE_ENV=development supervisor -i package.json,node_modules -e node,js,json ./app.js",
    "debug": "NODE_ENV=development node-debug ./app.js"
  },
  "dependencies": {
    "supervisor": "*",
    "node-inspector": "*",
  }
}

npm run-script dev で開発用にアプリ立ち上げ、 npm run-script debug でデバッグ用に立ち上げ。
start だけは特別で、 run-script がいらない。 npm start で本番アプリが立ち上がる。

チーム開発してるときに起動時のコマンドを固定化できるというのが一番のメリットかも。

59
59
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
59
59

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?