「Node.js」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎パッケージの確認: タイトルを修正)
(→‎node-gyp の python エラー: 英語版を元に修正)
120行目: 120行目:
 
== トラブルシューティング ==
 
== トラブルシューティング ==
   
=== node-gyp の python エラー ===
+
=== node-gyp エラー ===
   
node モジュールの中には、Python 3 をサポートしていない {{ic|node-gyp}} ユーティリティを使用するものがあります。大抵の場合、システム全体の Python 実行ファイルのデフォルトは Python 3 です。Python のエラーを解決するには、{{Pkg|python2}} をインストールして、以下のように npm でデフォルトの Python を設定してください:
 
   
  +
次のようなエラーの場合 {{ic|gyp WARN EACCES user "root" does not have permission to access the ... dir}} は {{ic|--unsafe-perm}} オプションが役立つ場合があります。
$ npm config set python /usr/bin/python2
 
   
  +
# npm install --unsafe-perm -g node-inspector
'''gyp WARN EACCES user "root" does not have permission to access the ... dir''' などのエラーが起こるときは ''--unsafe-perm'' オプションで直ります:
 
 
$ sudo npm install --unsafe-perm -g node-inspector
 
   
 
=== エラー Cannot find module ... ===
 
=== エラー Cannot find module ... ===

2021年8月3日 (火) 23:21時点における版

関連記事

Node.js は便利なライブラリが組み合わされた javascript 実行環境です。Google の V8 エンジン を使用してブラウザの外でコードを実行します。イベント駆動であり I/O をブロックしないため、リアルタイムなウェブアプリケーションに適しています。

インストール

公式リポジトリから nodejs パッケージをインストールできます。

別のインストール方法

珍しくないことに、様々なバージョンの nodejs を動作させる必要があったり、それが望ましい場合があります。node ユーザーの間で推奨されている方法は NVM (Node Version Manger) の使用です。nvmAUR を使うことで簡単にインストールすることができます。使用方法はプロジェクトの github にまとめられていますが、要するに次を実行するだけです:

$ nvm install VERSION_NUM

Node Packaged Module

npm は node.js の公式パッケージマネージャです。nodejs 0.12.2-4 から、npm はパッケージに含まれないようになりました。公式リポジトリから npm パッケージでインストールできます。

npm でパッケージを管理

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

全てのパッケージは次のコマンドでインストールできます:

$ npm install packageName

上のコマンドでパッケージがカレントディレクトリの node_modules に、実行ファイルが node_modules/.bin にインストールされます。

システム全体にインストールするには -g スイッチを使います:

# npm -g install packageName

デフォルトでは、上記のコマンドでパッケージは /usr/lib/node_modules/npm にインストールされるため、実行するのに管理者権限が必要になります。

ユーザー個別にインストールする場合、別のローカルフォルダを使うように npm を設定することができます。様々な方法で設定できます:

  • 手動で --prefix コマンドラインフラグを使う (例: npm -g install packageName --prefix ~/.node_modules)。
  • npm_config_prefix 環境変数を使う。
  • ユーザーの設定ファイル ~/.npmrc を使う。

1番目の方法は推奨されていません。インストールした場所を覚えておく必要があり、操作を行う度にパラメータを指定しなくてはならないためです。

2番目の方法を使う場合、シェルの設定ファイル (例: .bash_profile) に以下の行を追加してください:

PATH="$HOME/.node_modules/bin:$PATH"
export npm_config_prefix=~/.node_modules

変更を適用するために、一度ログアウトしてからログインしなおすか、シェルを再起動してください。

3番目の方法では以下のコマンドを使います:

$ npm config edit

prefix オプションを探して、適当な場所に設定してください:

prefix=~/.node_modules

行頭の ; は忘れずに削除してください。そのままではコメントとして認識されてしまいます。上記の設定をしたら、シェルの設定ファイル (例: .bash_profile) に実行ファイルの場所を追加します:

export PATH="$HOME/.node_modules/bin:$PATH"

変更を適用するために、一度ログアウトしてからログインしなおすか、シェルを再起動してください。

パッケージのアップデート

パッケージをアップデートするには次を実行:

$ 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 以降で修正されています。詳細については、以下を参照してください:

missing dependencies

参考資料

nodejs や公式のパッケージマネージャである npm の詳細情報は以下の資料を参照してください: