LoginSignup
52
35

More than 1 year has passed since last update.

Mac上でanyenvのnodenvで管理しているnpmで入れたモジュールにパスを通す

Last updated at Posted at 2019-08-20

この記事を書いたきっかけ:

Node.jsをnodebrewで管理していたのをやめ、anyenv経由で入れたnodenvでインストールし直したが、npmでグローバルインストールしたモジュールにアクセスできなくて困ったから

参考: nodebrew管理からnodenv管理への移行ははこちらを参考に行いました

注意:上記記事ではanyenvではなく、git経由でnodenvがクローンされています。anyenv経由でnodenvをインストールする方法も調べると出てきます。

前提

  • Node.jsをanyenvのnodenvで管理している
    • nodenvのバージョン: 1.1.2-1-g18489d7
    • Node.jsのバージョン: 9.11.1
    • npmのバージョン: 5.6.0

実際の手順

作業の順番に沿って説明します。

npmがnodenvで管理されたNode.jsのものであることを確認する

nodenvでのNode.jsのインストールは完了していると考えます。
Node.jsをインストールした際に自動的にnpmもインストールされています。

npmがnodenvで管理されたNode.jsのものであることを確認します↓

$ which npm
/Users/{your_user_name}/.anyenv/envs/nodenv/shims/npm

/usr/local/binなどが表示された場合、nodebrewなどを利用してインストールされていると思われます。

npmのパスが通らない場合

.bash_profileに以下の記述を追加します。
zshを使用している場合は書き込み先を .zshrcにするなど、適宜読み替えてください。

  • 方法1: ファイルに直接追記する
bash_profile
export PATH="$HOME/.anyenv/envs/nodenv/bin:$PATH"
  • 方法2: echoする
$ echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.bash_profile
  • 更新する(方法1,2共通)
$ source ~/.bash_profile

では、このnodenv配下のnpmでモジュールをグローバルインストールします。

どのNode.jsのnpmか確認する

npmでグローバルインストールする対象のNode.jsが何か、念のため確認します。
nodenvで複数の環境を管理している場合は特に注意です。

  • nodenvでNode.jsのバージョン管理をしているか確認する
# インストール済みのNode.jsバージョン一覧
$ nodenv versions
8.11.1
* 9.11.1 (set by /Users/{your_user_name}/.anyenv/envs/nodenv/version)

ローカル環境のNode.jsを参照している場合、参照先のファイルが $ nodenv local {バージョン番号}実行時に作成されたファイル .node_versionになります。

$ nodenv versions
* 8.11.1 (set by /{where_your_locally_set_node_is}/.node-version)
9.11.1

グローバルバージョンを設定する場合

$ nodenv global {バージョン番号}

ローカル環境のNode.jsバージョンを設定する場合

$ nodenv local {バージョン番号}

.node_version というファイルが作成され、nodenvがローカルバージョンを認識できるようになります。

npmでモジュールをグローバルインストールする

今回は例として aws-cdkというモジュールをインストールしようとしていますが、適宜読み替えてください。

  • npmで aws-cdkをグローバルインストールする
$ npm install -g aws-cdk
/Users/{your_user_name}/.anyenv/envs/nodenv/versions/9.11.1/bin/cdk -> /Users/{your_user_name}/.anyenv/envs/nodenv/versions/9.11.1/lib/node_modules/aws-cdk/bin/cdk
+ aws-cdk@1.4.0
updated 1 package in 10s

インストールできたっぽいです。

モジュールのコマンドを確認する


$ cdk
-bash: cdk: command not found
# そんなコマンドねえよと怒られます

$ which cdk
# 反応なし

はい、通っていません。

追記:fifnel様からコメントでご指摘いただいた内容に修正しています

  • 以下のコマンドを実行する
$ nodenv rehash

~/.anyenv/envs/nodenv/shims/ 以下に実行ファイルがコピーされてそのまま使えるようになるみたいです (手元では確認済)
以下、nodenv 1.3.2 のヘルプより
rehash Rehash nodenv shims (run this after installing executables)

コマンドが通っているか確認します。

$ cdk
Usage: cdk -a <cdk-app> COMMAND
# (略)

$ which cdk
/Users/{your_user_name}/.anyenv/envs/nodenv/shims/cdk

通りました!

52
35
1

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
52
35