为什么 browserify 需要本地安装的 sudo 权限?

Why does browserify need sudo permission for local installs?

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

由于 broswerify 在我的本地 package.json 中被列为依赖项,一个简单的 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 来规避这个问题,但为什么我必须这样做?

有些很可能是在您使用 sudo npm 安装某些东西的过程中的某个时候。你永远不会必须这样做。但是,一旦完成,您可能必须使用 sudo npm cache cleansudo rm -rf /Users/user/.npm 返回正常状态,然后再继续前进。这完全是关于文件系统权限的,与 npm 或 browserify 的直接关系为零。

具体根据您评论中的详细信息 运行 ls -ld /Users/user/.npm/browserify 因为问题是当 npm 尝试 mkdir 时,这意味着该目录可能无法写入 user.