【问题标题】:Why does browserify need sudo permission for local installs?为什么 browserify 需要 sudo 权限才能进行本地安装?
【发布时间】:2015-03-26 00:26:17
【问题描述】:

在本地安装browserify时,为什么需要管理员权限?

在我的本地 package.json 中将 broswerify 列为依赖项,一个简单的 npm install 有时会产生 EACCESS 错误:

npm ERR! Error: EACCES, mkdir '/Users/user/.npm/browserify/8.1.3'
npm ERR!  { [Error: EACCES, mkdir '/Users/user/.npm/browserify/8.1.3']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/Users/user/.npm/browserify/8.1.3',
npm ERR!   parent: 'my-app' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

显然我可以使用sudo 来规避这个问题,但为什么我必须这样做呢?

【问题讨论】:

  • “/Users/user/.npm/”是否存在,其权限是什么?
  • @DanD。为什么需要在/Users/user/.npm/ 中安装任何东西?我在本地安装,而不是全局安装。 /Users/user/.npm/ 用于全局安装。
  • ~/.npm 是 npm 包缓存的位置。
  • @DanD。所以根据这个理由,所有npm installs 都应该前缀sudo?不确定我是否同意。
  • 可能您的~/.npm 文件夹是由root 创建的并且权限混乱。

标签: node.js npm browserify


【解决方案1】:

一些很可能在您使用sudo npm 安装某些东西的过程中出现。您从不必须这样做。但是,一旦完成,您可能必须使用 sudo npm cache cleansudo rm -rf /Users/user/.npm 才能恢复正常状态,然后再继续使用 sudo。这完全与文件系统权限有关,与 npm 或 browserify 直接无关。

根据您的 cmets 中的详细信息,专门运行 ls -ld /Users/user/.npm/browserify,因为问题是当 npm 尝试在其中 mkdir 时,这意味着该目录可能对 user 是不可写的。

【讨论】:

  • 不知道我是怎么错过的。 browserify 文件夹确实归 root 所有。清理缓存,我们恢复正常。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-04
  • 2012-07-01
  • 1970-01-01
相关资源
最近更新 更多