npm抛出错误没有sudo
我只是通过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目录的所有权execute:
sudo chown -R $(whoami) ~/.npm
当您在npm目录( npm link
, npm install -g
等)中写入内容时,您需要使用安装Node时的权限。
您可能使用root权限运行节点安装,这就是全局软件包安装要求您为root的原因。
解决方案1:NVM
不要违反权限,以正确的方式安装节点。
在开发机器上,您不应该使用root权限来安装和运行节点,否则像npm link
, npm install -g
这样的东西需要相同的权限。
NVM(节点版本管理器)允许您在没有root权限的情况下安装节点,并且还允许您安装许多版本的节点,以便轻松地与它们一起播放。非常适合开发。
nvm install node
: nvm install node
现在npm link
, npm install -g
将不再需要你成为root用户。
编辑:另见https://docs.npmjs.com/getting-started/fixing-npm-permissions
解决方案2:为给定用户全局安装软件包
不要破解权限,以正确的方式全局安装npm包。
如果您使用的是OSX或Linux,则可以为您的全局程序包创建用户专用目录,并设置npm
和node
以了解如何查找全局安装的程序包。
查看这篇文章 ,详细介绍如何在没有sudo的情况下全局安装npm模块。
另请参阅:关于修复npm权限的npm文档。
您还需要在node_modules
目录中具有写入权限:
sudo chown -R $USER /usr/local/lib/node_modules
链接地址: http://www.djcxy.com/p/27687.html