nodenvを使ってnodeバージョン管理していて、それぞれのバージョンでnpm install -g
しているとこっちのバージョンではパッケージが入っているがこっちのバージョンでは入っていない!というケースが発生したりすることがあると思います。
nodenvではnodenv-default-packagesというプラグインを利用することでnodeインストール時に自動的に指定したパッケージをインストールすることができます。
インストール
プラグインインストール用のディレクトリがなければ作成します。
mkdir -p "$(nodenv root)/plugins"
プラグインをリポジトリからクローンします。
git clone https://github.com/nodenv/nodenv-default-packages.git "$(nodenv root)/plugins/nodenv-default-packages"
default-packagesファイルの設定
インストールするパッケージ名を記載するdefault-packages
を作成します。
touch $(nodenv root)/default-packages
あとはこのdefault-packages
ファイルにインストールしたいパッケージ名を記載しておけばnodenv install
時にそのバージョンのnodeに対してパッケージをグローバルインストールしてくれるようになります。
以下記入例です。パッケージ名は改行で区切って記載します。
バージョン指定もなどもできます。
typescript
parcel-bundler <=1.12.0
# #の行はコメント行
ちなみに特定のバージョンにしかインストールされていないコマンドを叩いた場合は以下のようになります。
bash-3.2$ node -v
v8.10.0
bash-3.2$ parcel
nodenv: parcel: command not found
The `parcel' command exists in these Node versions:
10.15.3
インストール済みのnodeへのインストール
すでにインストールされているnode対してパッケージインストールを行いたい場合は、以下のようにバージョンを指定して実行します。
nodenv default-packages install 8.10
インストールされているすべてのnodeに対して適用する場合は--allオプションを使用します。
nodenv default-packages install --all