我只是通过nodejs.org上的软件包安装了node和npm,并且每当我尝试使用npm搜索或安装某些东西时,都会抛出以下错误,除非我对命令进行了sudo。我感觉这是权限问题?我已经是管理员了。
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
这看起来像你的主目录中的权限问题。要回收.npm目录的所有权,请执行以下操作:
sudo chown -R $(whoami) ~/.npm
我以为那
whoami
是一个占位符,但是它按原样输入是可以的,因此它必须是我不理解的变量。WHOAMI是一个实际的外壳命令en.wikipedia.org/wiki/Whoami。周围的反引号可
whoami
确保其正确执行,然后放入chown命令中您也可以手动指定用户名。如果您的用户名是“ simpleascouldbe”,则命令为
sudo chown -R simpleascouldbe ~/.npm
npm不需要也不应该使用sudo-请参阅@HeberLZ下面的答案,尤其是有关以下内容的第二个选项:./configure --prefix = xxxxxx
@ChristopherWill:这不会更改系统目录的所有权。这正在更改用户主目录中目录的所有权,该目录应归用户所有。