Espress
2021 December 7th

npmを使ったグローバルインストールでエラーが発生した際の対処法

npmでパッケージをグローバルインストールしようとしたらパーミッションエラーが発生した時の対処法について。

profile icon
written by スズキ ハルヤ
article image

余談

npmで-gを使用しないインストールは普段行っていたのですが、

npm install -g [パッケージ名]

上記のコマンドでパッケージをグローバルインストールしようとした際に以下のエラーが発生しました。

errno -13 Error: EACCES: permission denied, access '/usr/local/lib/node_modules'

解決方法

所有権を現在使用しているユーザーに変更するため、以下のコマンドを実行します。

sudo chown -R $( whoami ) /usr/local/lib/node_modules

コマンド解説

sudo: スーパーユーザー(最も実行権限のあるアカウント)でコマンドを実行

chown -R: 指定したディレクトリとそのディレクトリ以下のファイルやディレクトリ(ここではnode_modulesの中身を指します)の所有権を変更する

/usr/local/lib/node_modules: 上記のコマンド対象となるディレクトリのパス

変数解説

$(): ()の中に変数名を入れることで文字列としてコマンド内で表示可能です。

whoami: 現在のユーザー名を表します。

なぜこのエラーが発生したのか

npmでパッケージをグローバルインストールする際にはnode_modulesディレクトリとその配下へのアクセス権限が必要です。

今回の場合、コマンドを実行したユーザーにはnode_modulesに変更を加える権限がなかったためパッケージのインストールが出来ず、上記のエラーが出てしまいました。

introduction image

- Introduction -

Espressの成り立ちとデジタルクリエイティブにおける想い

introduction image

多くの情報が乱立する中、Espressは記事を読んでくださる皆様に、より良い情報と価値のあるコンテンツをお届けしたいと考えています。また、企業や事業主が掲げる目標達成の手助けをサイト利用者の利便性を捉え、ブランドと読者のより良い結びつきを作ります。

詳しくみる