消除mac下npm全局安装使用sudo命令

可能在我们默认安装node.js的使用,npm安装到的目录大多都在/usr/local/bin 下,我们有的时候全局安装某些模块的时候,会出现类似 EACCES 或者无法创建软链 link permission下面的一些提示

npm ERR! Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json'
npm ERR! { [Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/Users/chietala/.npm/-/all/.cache.json' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 12.2.0
npm ERR! command "node" "/usr/local/bin/npm" "search" "bower"
npm ERR! cwd /Users/chietala
npm ERR! node -v v0.10.4
npm ERR! npm -v 1.2.18
npm ERR! path /Users/chietala/.npm/-/all/.cache.json
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json'
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/chietala/npm-debug.log
npm ERR! not ok code 0

这个时候 你可以输入sudo npm i xxx -g。但是这样的话,在今后处理一些模块依赖的话,会经常有提示这样的信息。当然我们也可以采取一些方法避免提示用sudo

我们可以输入下面的命令

 sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

重新给npm的目录写下权限就可以了。

如果不行,还可以尝试使用 stackoverflow 的回答者的答案。但是Po主确实这样就好了。

参考

https://docs.npmjs.com/getting-started/fixing-npm-permissions

http://stackoverflow.com/questions/16151018/npm-throws-error-without-sudo