ぺーぺーSEのテックブログ

備忘録用メモサイト

RSSを購読する

Node.js/npm入門

Node.js(npm)についてまとめる。

npm(Node Packege Manager)は、Node.js用のパッケージ管理コマンド。
JavaScriptエコシステムツール・ライブラリはnpmで導入できるものが多い。
npmはNode.jsと同時にインストールされるので、Node.jsを入れておけばいい。
また、Node.jsはJavaScriptの実行エンジン。

ちなみにここでNode.jsのES6対応状況がわかる。
v8.3.0で 99% カバーしている。

インストール

Node.jsのインストール方法は以下の「anyenv」を参照。

ndenv

上記の手順でNode.jsを導入した場合、Node.jsのバージョンを ndenv でコントロールする。

1
2
3
4
5
6
7
8
$ ndenv install -l # インストールできるNode.jsのバージョン確認
$ ndenv install v8.3.0 # バージョンを指定してインストール
$ ndenv versions # インストールされたことを確認
$ ndenv global v8.3.0 # バージョンを切り替え
$ ndenv local v8.3.0 # 今いるプロジェクトだけバージョンを指定したい場合はこっち
$ node -v # 確認
$ npm update -g npm # npm のバージョンアップ
$ npm -v # 確認

npmの使い方

公式ドキュメントはここ
プロキシの設定が必要な場合は以下。

1
2
$ npm config set proxy http://<username>:<password>@<proxy-host>:<proxy-port>
$ npm config set https-proxy http://<username>:<password>@<proxy-host>:<proxy-port>

プロジェクトの作成

任意のディレクトリを作成して npm init を実行すると package.json が作成され、プロジェクトとなる。
いろいろ聞かれるが、全部Enterで問題無い。あとで変更可能。

1
2
3
$ mkdir nodejs-sample
$ cd nodejs-sample
$ npm init

package.json はMavenでいう pom.xml みたいなもの。(Javaの人向けでごめん)

パッケージのインストール

グローバルインストール

npm install -g <package_name>@<version> でパッケージのインストールが可能。
-g オプションがついてるのがポイント。
アンインストールは npm uninstall -g <package_name>
インストールパッケージ一覧の確認は npm list -g

インストール先は以下で確認できる。

1
2
3
4
5
# グローバルインストール先のディレクトリ
$ npm root -g
# グローバルインストール先の、コマンドディレクトリ
$ npm bin -g

ローカルインストール

npm install <option> <package_name>@<version> でパッケージのインストールが可能。
インストールしたパッケージは package.json に追記され、 node_modules/ 配下に配備される。
オプションは以下の通り。

  • --save-S
    • package.jsondependencies に追記される
    • npm install --production した時に mode_modules/ に配備される
    • 開発したソフトウェアを動かすのに必要な依存ライブラリ
  • --save-dev-D
    • package.jsondevDependencies に追記される
    • npm install --dev した時に mode_modules/ に配備される
    • ソフトウェアを開発する際に必要になるツール・ライブラリ
  • --save-optional-O
    • package.jsonoptionalDependencies に追記される
    • npm install した時に mode_modules/ に配備される(失敗してもスルーされる)

デフォルト設定の場合、 npm install (オプション無)すると、 dependenciesdevDependenciesoptionalDependencies の全てがインストールされる。
アンインストールは npm uninstall <package_name>
インストールパッケージ一覧の確認は npm list

パッケージの使い方

npmで導入したJavaScriptライブラリ( node_modules/ 配下にある)は、JavaScriptのソースコードからほぼ以下の形式で呼び出すことができる。

1
var req = require('request')

上記は request モジュールを呼び出して req 変数へ代入している例。

npmスクリプト

package.jsonscripts にスクリプトを登録することにより簡易に実行することができる。
例えば以下。

1
2
3
4
5
6
"scripts": {
"test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/",
"test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/ test/acceptance/",
"test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/ test/acceptance/",
"test-tap": "mocha --require test/support/env --reporter tap --check-leaks test/ test/acceptance/"
}

上記のようにスクリプトを定義することにより npm testnpm test-ci といった具合で登録したスクリプトを実行することができる。

Node.jsの使い方

Node.jsのAPIリファレンスはここ

シンプルに動かしてみる

まず、Node.jsをJavaScriptエンジンとしてシンプルに動かしてみる。

■hello.js

■main.js

上記JSファイルを作成して下記を実行。

1
2
$ node main.js
Hello World !

node <JSファイル> コマンドで実行できる。

HTTPサーバ

Node.jsでHTTPサービスを立ち上げてみる。

■app.js

下記を実行してブラウザで http://127.0.0.1:1337/ へアクセスすると「Hello World !」と表示される。

1
$ node app.js

Ctr+C でサービスを停止できる。
この方法でHTTPサービスを起動した場合、ロジックでエラーが発生するとプロセスが終了する。
エラーが発生してもプロセスが終了しないようにする方法の1つとして forever の導入がある。

■foreverのインストール、起動、停止

1
2
3
$ npm install -g forever
$ forever start app.js
$ forever stop app.js

Node.jsに関する話題