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 linknpm install -g等)中写入内容时,您需要使用安装Node时的权限。

您可能使用root权限运行节点安装,这就是全局软件包安装要求您为root的原因。


解决方案1:NVM

不要违反权限,以正确的方式安装节点。

在开发机器上,您不应该使用root权限来安装和运行节点,否则像npm linknpm install -g这样的东西需要相同的权限。

NVM(节点版本管理器)允许您在没有root权限的情况下安装节点,并且还允许您安装许多版本的节点,以便轻松地与它们一起播放。非常适合开发。

  • 卸载节点(可能需要root权限)。 这可能会帮助你。
  • 然后按照此页面上的说明安装NVM。
  • 通过NVM nvm install nodenvm install node
  • 现在npm linknpm install -g将不再需要你成为root用户。

    编辑:另见https://docs.npmjs.com/getting-started/fixing-npm-permissions


    解决方案2:为给定用户全局安装软件包

    不要破解权限,以正确的方式全局安装npm包。

    如果您使用的是OSX或Linux,则可以为您的全局程序包创建用户专用目录,并设置npmnode以了解如何查找全局安装的程序包。

    查看这篇文章 ,详细介绍如何在没有sudo的情况下全局安装npm模块。

    另请参阅:关于修复npm权限的npm文档。


    您还需要在node_modules目录中具有写入权限:

    sudo chown -R $USER /usr/local/lib/node_modules
    
    链接地址: http://www.djcxy.com/p/27687.html

    上一篇: npm throws error without sudo

    下一篇: npm WARN on dependencies