Edited at

【備忘録】npm -g install に失敗する


問題点

npm -g install xxxに失敗する

$ npm -g install firebase-tools


npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! stack: 'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules\'',
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/xxx/.npm/_logs/2018-04-15T05_03_59_511Z-debug.log


解決方法

npmのデフォルトディレクトリを作成する

$ mkdir ~/.npm-global

$ npm config set prefix '~/.npm-global'
$ echo ' export PATH=~/.npm-global/bin:$PATH' >> ~/.bash_profile
$ source ~/.bash_profile

npm -g install xxxに成功するようになった

$ npm -g install firebase-tools


/Users/xxx/.npm-global/bin/firebase -> /Users/xxx/.npm-global/lib/node_modules/firebase-tools/bin/firebase

> @google-cloud/functions-emulator@1.0.0-beta.4 postinstall /Users/xxx/.npm-global/lib/node_modules/firebase-tools/node_modules/@google-cloud/functions-emulator
> node scripts/upgrade-warning

If you're using the Emulator via the Firebase CLI, you can
disregard this message.

If you're upgrading @google-cloud/functions-emulator, these
are the recommended upgrade steps:

1. Stop the currently running emulator, if any:

functions stop

2. Uninstall the current emulator, if any:

npm uninstall -g @google-cloud/functions-emulator

3. Install the new version of the emulator:

npm install -g @google-cloud/functions-emulator

If you have trouble after upgrading, try deleting the config
directory found in:

~/.config/configstore/@google-cloud/functions-emulator

Then restart the emulator. You can also check for any renegade
Node.js emulator processes that may need to be killed:

ps aux | grep node

+ firebase-tools@3.18.4
added 524 packages in 16.654s


参考