在新的电脑安装 npm 包的时候,控制台报了以下错误
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 ERR! Error: EACCES, open xxx
,可以看出是没有权限,再看看错误,Please try running this command again as root/Administrator.
可以看出提示我们用超级管理员来运行命令。
根本原因
导致这个错误的根本原因是,全局的 ~/.npm
文件夹权限问题,由于 npm install
是普通用户角色来运行这个命令的,无法访问 ~/.npm
文件夹,所以报错了。
那么就对症下药,修改 ~/.npm
权限为当前用户可以访问。
在控制台上运行下面命令即可。
sudo chown -R $(whoami) ~/.npm
或者下面命令
sudo chown -R $USER /usr/local/lib/node_modules
或者创建共享的 npm 文件夹
mkdir ~/.npm-global
echo -e "export NPM_CONFIG_PREFIX=~/.npm-global\nexport PATH=\$PATH:~/.npm-global/bin" >> ~/.bashrc
source ~/.bashrc