JavaScript, Node.js を始める

JavaScript 熱の高まりというか、やっぱり使えたらいろいろ便利そうだな*1と思い、昨年末あたりから少しずつ調べたりまとめたりしていたので、こちらにも書いておこう。

Node.js をインストール

公式サイトからインストールしてもいいけれど、入れ直したりバージョンを上げたりをやりやすくするためツール経由で入れるほうがよさそうなので nodebrew を使う。

curl でインストール。

$ curl -L git.io/nodebrew | perl - setup

PATH を通しておく。

$ export PATH=$HOME/.nodebrew/current/bin:$PATH

nodebrew 使い方

バイナリを入れるやり方でいいと思う。

# すでにインストールしていた場合
$ nodebrew selfupdate

# インストール可能なバージョンを列挙する
$ nodebrew ls-remote

# バイナリを入れる場合
$ nodebrew install-binary <version>
# ソースからコンパイルする場合
$ nodebrew install <version>

とりあえず stable を指定したら v7.2.1 が入った。

# <version> の代わりに stable や latest という指定が可能
$ nodebrew install-binary stable

# インストール済のバージョンを表示
$ nodebrew ls

# 使用するバージョンを指定
$ nodebrew use stable

# アンインストールする場合
$ nodebrew uninstall <version>

パッケージマネージャ npm について

Node.js をインストールすると npm コマンドが使えるようになる。パッケージマネージャと書いたけれど、備えている機能はもう少し幅広いようだ。

Node.js で開発する、プロジェクトを作るには以下のコマンドから始める。

$ npm init

プロジェクト名とか作者名とかいろいろ質問されるのでそれに答えていくとそれらの情報を含んだ package.json が作成される。

npm init の際にオプション --yes をつけると全てデフォルトで進めてくれる。

package.json にはインストールしたパッケージの情報を記載しておけば、そのプロダクトを別な環境でインストールする際に npm install とするだけで依存するパッケージをインストールしてくれる。

link

npm でパッケージをインストール

npm install <package_name> でインストールする。

オプション --save or --save-dev をつけるとインストールと同時に package.json にも記載される。

--save は実行時に必要なパッケージとして "dependencies:" に記載される。

--save-dev は開発時に必要なパッケージとして "devDependencies:" に記載される。

$ npm install <package_name> --save
$ npm install <package_name> --save-dev

オプション

  • npm inpm install と等価
  • -D--save-dev と等価
  • -S--save と等価
  • -g--global と等価

以下のようにも書ける

$ npm i -D <package_name>

link

インストールしたパッケージを確認する

# ローカルのパッケージを確認
$ npm list # or ls
# グローバルのパッケージを確認
$ npm list --global # or -g

ただ、上記のコマンドだと大量のパッケージが表示されるので以下のようにオプションを指定するのがよい。

$ npm list --depth=0

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

ローカルにインストールするとプロジェクトディレクトリ内の node_modules/ に入る。

グローバルにインストールすると <prefix>/lib/node_modules/ に入る。 <prefix> を確認するコマンドは以下の通り。

$ npm config get prefix

ローカルにインストールしたパッケージを使うために PATH を通す。

$ export PATH=$(npm bin):$PATH

その他

インストールしたパッケージのアップデート

この記事が参考になりそう。まだ必要に迫られていないので試したりしていない。

インストールするパッケージのバージョンを指定

package.json にはそのパッケージのバージョン番号も指定される。書式については以下の記事が参考になる。

ローカルのパッケージを Git の管理対象から除外

.gitignorenode_modules/ と書いておこう。

*1:GoogleAppsScript とか Electron とかを用いて生活および仕事のタスクを処理する便利な何かを作れるのではないか的な