8
1

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 3 years have passed since last update.

npm_config_arch, npm_config_target_arch, そして npm_config_* 環境変数について

Last updated at Posted at 2021-07-14

npm_config_ で始まる環境変数は npm コマンドによって解釈される。 npm_config_foo=bar とセットすると npm のコンフィグ foobar にセットしたのと同じ意味になる。 https://docs.npmjs.com/cli/v7/using-npm/config#environment-variables

この環境変数の名前は大文字でも小文字でもいいが、 npm は scripts を実行するとき名前が小文字バージョンの環境変数を独自にセットする。それは(ユーザーによってセットされた)名前が大文字の環境変数よりも優先されることに注意。ユーザーによって名前が小文字の環境変数がセットされたらそれが最優先される。

npm_config_ で始まる環境変数は npm コマンド以外にも認識されることがある。中でも Node のネイティブ拡張を扱うライブラリ node-gyp と node-pre-gyp に関する環境変数は覚えておくといい。

タイトルにも書いた npm_config_arch は node-gyp がビルドするネイティブ拡張のアーキテクチャを指定する。 npm_config_target_arch は node-pre-gyp がダウンロードするコンパイル済みネイティブ拡張バイナリのアーキテクチャを指定する。

M1 Mac では node-pre-gyp がネイティブ拡張をダウンロードできずにエラーを出すことがときどきある。その場合は export npm_config_target_arch=x64 してから npm install <pkg> を実行するといい。 yarnpnpm でも node-gyp や node-pre-gyp が認識する環境変数は使える。


関連記事:

8
1
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
8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?