Node.js
Node.js は便利なライブラリが組み合わされた JavaScript 実行環境です。Google の V8 エンジン を使用してブラウザの外でコードを実行します。イベント駆動型のノンブロッキング I/O モデルを採用しているため、リアルタイムなウェブアプリケーションに適しています。
目次
インストール
nodejs パッケージをインストールします。LTS 版もあります:
- nodejs-lts-iron - 20.X バージョンの場合
- nodejs-lts-hydrogen - 18.X バージョンの場合
別のインストール方法
様々なバージョンの nodejs を動作させる必要があったり、または動作させることを望むことは珍しいことではありません。node ユーザーの間で推奨されている方法は NVM (Node Version Manger) の使用です。nvmAUR を使うことで簡単にインストールすることができます。
これをシェルの起動ファイルに追加することで設定できます:
# Set up Node Version Manager source /usr/share/nvm/init-nvm.sh
使用方法はプロジェクトの github にまとめられていますが、要するに次を実行するだけです:
$ nvm install 8.0 Downloading and installing node v8.0.0... [..] $ nvm use 8.0 Now using node v8.0.0 (npm v5.0.0)
nvmAUR を使う場合、以前は AUR の nodejs-fake
パッケージを使うことが推奨されていましたが、これは現在、削除されています。推奨される方法は、マニュアル pacman(8) § TRANSACTION OPTIONS (APPLY TO -S, -R AND -U) にあるように、--assume-installed nodejs=<version>
を使うことです。
ディレクトリに、.nvmrc ファイルがあるたびに、`nvm use` を自動的に実行したい場合は、~/.bashrc
に以下を追加してください。
Node Packaged Module
npm は node.js の公式パッケージマネージャです。npm パッケージでインストールできます。
npm でパッケージを管理
パッケージのインストール
全てのパッケージは次のコマンドでインストールできます:
$ npm install packageName
上のコマンドでパッケージがカレントディレクトリの node_modules
に、実行ファイルが node_modules/.bin
にインストールされます。
システム全体にインストールするには -g
スイッチを使います:
# npm -g install packageName
デフォルトでは、上記のコマンドでパッケージは /usr/lib/node_modules/npm
にインストールされるため、実行するのに管理者権限が必要になります。
ユーザーに global パッケージのインストールを許可する
現在のユーザーに、global パッケージのインストールを許可するには、環境変数 npm_config_prefix
を設定します。これは npm と yarn の両方で使用されます。
~/.profile
PATH="$HOME/.local/bin:$PATH" export npm_config_prefix="$HOME/.local"
再ログインまたは、source して変更を更新します。
npm install
時に、--prefix
パラメータを指定することもできます。ただし、グローバルパッケージをインストールするたびに追加する必要があるので、これはお勧めしません。
$ npm -g install packageName --prefix ~/.local
同様の方法として、$HOME/.npmrc
の prefix
フィールドを編集して、恒久的に変更する方法もあります。
パッケージのアップデート
パッケージをアップデートするには次を実行:
$ npm update packageName
グローバルにインストールしたパッケージ (-g
) の場合:
# npm update -g packageName
全てのパッケージをアップデート
場合によっては、全てのパッケージをアップデートしたいと思うかもしれません。ローカルでもグローバルでも可能です。packageName を抜いて npm
を実行すると全てのパッケージがアップデートされます:
$ npm update
またはグローバルにインストールしたパッケージをアップデートするには -g
フラグを追加:
# npm update -g
パッケージの削除
-g
スイッチを使ってインストールしたパッケージを削除するには次のコマンドを使用:
# npm -g uninstall packageName
ローカルパッケージを削除するときはスイッチを省いて実行:
$ npm uninstall packageName
パッケージの一覧表示
グローバルにインストールしたパッケージのツリービューを表示するには次を使用:
$ npm -g list
場合によってツリーは深くなりすぎることがあります。トップレベルのパッケージだけを表示するには:
$ npm list --depth=0
アップデートが必要な古いパッケージだけを表示するには:
$ npm outdated
pacman でパッケージを管理
Arch User Repository には nodejs-packageName
という名前で node.js のパッケージがいくつか存在します。
トラブルシューティング
node-gyp エラー
次のようなエラーの場合 gyp WARN EACCES user "root" does not have permission to access the ... dir
は --unsafe-perm
オプションが役立つ場合があります。
# npm install --unsafe-perm -g node-inspector
エラー Cannot find module ...
npm 5.x.x 以降、package-lock.json ファイルは package.json とともに生成されます。2つのファイルが異なるパッケージバージョンを参照している場合、競合が発生する可能性があります。この問題を解決する一時的な方法は次の通りです:
$ rm package-lock.json $ npm install
ただし、npm 5.1.0 以降で修正されています。詳細については、以下を参照してください:
参考資料
nodejs や公式のパッケージマネージャである npm の詳細情報は以下の資料を参照してください:
- Node.js ドキュメント
- NPM ドキュメント
- IRC チャンネル #node.js on irc.freenode.net