Windows10でnpm install -g が権限不足で失敗した際の対策


初めに

firebase cliをWindowsでインストールしようとした際、少し嵌ったのでメモとして残します。公式通りだと私の環境では上手くいかなかったので少しアレンジしています。
お利口なやり方ではないかも知れませんのでご指摘歓迎です。

公式を参考にしました。
https://firebase.google.com/docs/cli?hl=ja#npm
https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

手順

コマンドプロンプトでbashが扱える前提です。

1.npm install -gの新しいインストール先を作成

mkdir C:\Users\[ユーザ名]\.npm-global

2.作成したディレクトリをnpmが参照するように設定

npm config set prefix 'C:\Users\[ユーザ名]\.npm-global'

3.C:\Users\[ユーザ名]\.profileでファイルを作成し、以下を記述

.profile
export PATH=~/.npm-global/bin:$PATH

4.システムに新しい変数を読み込ませる

4の手順まで実施し、npmのグローバルインストールで権限不足で怒られなくなりました。

bash C:\Users\[ユーザ名]\.profile

5.環境変数に.npm-globalのパスを追加

アレンジ部分です。公式はこの工程が無くてもfirebaseコマンドが実行できると書いてあったのですが、どうしてもfirebaseコマンドのパスが通らず、試行錯誤した結果、環境変数に追加するパワープレーで解決できました。

C:\Users\[ユーザ名]\.npm-global

6.npm installでfirebase cliをインストール

npm install -g firebase-tools

これで晴れてfirebaseコマンドが実行できるようになりました。

最後に

環境変数に追加したのは苦肉の策というか、他に正しい方法があったのだろうなともやもやします。。