chocolateyでnodeを入れるとnpmが管理者権限の時しか実行できない問題


困ったこと

・npmコマンドが管理者権限でしか使えない!
背景として、chocolateyでnvmを入れてnode.jsやnpmをインストールした。
-管理者としてコマンドを開いたときだけnpmが認識される

結論

・システム環境変数のpathを編集して、nvmのpathを直接通す。

原因

・chocolateyでnvmをインストールするとシステム環境変数の設定が以下のようになる
・%NVM_HOME%はシステム環境変数内に設定した変数NVM_HOMEを呼び出しているが、これがシステム環境変数内にあることから管理者権限でしかアクセスすることができない。

解決方法

・管理者モードでpowershellを起動して下記のコマンドを実行してシステム変数が編集できるようにする

管理者権限powershell
Start C:\Windows\system32\rundll32.exe sysdm.cpl, EditEnvironmentVariables 

-たった2手で管理者権限でシステム環境変数がいじれないを対処する

・変数に書いてあるパスを確認後、管理者権限なしで使いたいコマンドのpathをシステム環境変数またはユーザー環境変数に直接書く

さいごに、vscodeでpowershellを実行している場合は、エディタを再起動させることをお忘れなく。

参考文献

-管理者としてコマンドを開いたときだけnpmが認識される
-たった2手で管理者権限でシステム環境変数がいじれないを対処する