it-swarm-ja.com

「npmconfigsetprefix」がmacOSMojaveのユーザー所有ディレクトリで失敗する

Homebrewを使用してクリーンなmacOSMojaveボックスにノードをインストールしています。ユーザー所有のディレクトリにnpmインストールディレクトリを設定しようとしています。 dir toolsはすでに存在し、ユーザーが所有しています。

npm config set prefix '/Users/giorgio/tools/npm_global'

そして、それはこのメッセージで失敗します。誰かが何が起こっているのか知っていますか?

Error: EACCES: permission denied, mkdir '/tools'
TypeError: Cannot read property 'loaded' of undefined
    at exit (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:98:27)
    at errorHandler (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:216:3)
    at /usr/local/lib/node_modules/npm/bin/npm-cli.js:78:20
    at cb (/usr/local/lib/node_modules/npm/lib/npm.js:225:22)
    at /usr/local/lib/node_modules/npm/lib/npm.js:263:24
    at /usr/local/lib/node_modules/npm/lib/config/core.js:83:7
    at Array.forEach (<anonymous>)
    at /usr/local/lib/node_modules/npm/lib/config/core.js:82:13
    at f (/usr/local/lib/node_modules/npm/node_modules/once/once.js:25:25)
    at afterExtras (/usr/local/lib/node_modules/npm/lib/config/core.js:173:20)
/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:98
  var doExit = npm.config.loaded ? npm.config.get('_exit') : true
                          ^

TypeError: Cannot read property 'loaded' of undefined
    at exit (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:98:27)
    at process.errorHandler (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:216:3)
    at process.emit (events.js:197:13)
    at process._fatalException (internal/process/execution.js:123:25)
2
ClonedOne

非常にランダムに解決策を見つけました。初めてset prefixを試みたとき、間違ったパス文字列を使用したようです。 .npmrcファイルを手動で削除し、set prefixコマンドを再試行して機能させる必要がありました。

しかし、私はset prefixがそれ自体で作成されたnpn構成ファイルを変更できることを本当に期待していました。

1
ClonedOne