安装全局NPM软件包时,Eacess的许可拒绝了



当我尝试安装某些内容(Gulp,Sass,WebPack等)时,全球 sudo npm install packagename -g我总是会遇到这些错误:

node-pre-gyp警告命中错误eacces:许可拒绝,mkdir'/usr/local/lib/lib/node_modules/webpack/node_modules/fsevents/lib'

GYP警告Eacces用户" root"没有权限访问dev dir&quot&quot&quot&quy gyp/11.11.11.11.quot;

gyp err!堆栈错误:EACCES:拒绝,mkdir'/usr/local/lib/node_modules/webpack/node_modules/fsevents/.node-gy-node-gyp'

和更多类似的错误。

我尝试使用磁盘维修修复磁盘权限。我已经完全卸载并重新安装了节点。我在堆栈溢出上尝试了其他答案,例如:

sudo chown -R $(whoami) ~/.npm

sudo chown -R $(whoami) /usr/local/lib/node_modules

这没有帮助。

如何修复权限,以便可以再次安装全局NPM软件包?

我正在运行带有节点11.11.0

的OS X Mojave

我也有点努力,最终发现您需要将全局包装安装位置设置为您拥有的文件夹。

npm config set prefix '~/.npm-global'
然后导出路径
export PATH=~/.npm-global/bin:$PATH

所有这些信息都可以在NPM文档网站上找到

https://docs.npmjs.com/resolving-acces-permissions-ermissions-errors-when-installing-packages-globally

我了解到的一项经验法则是永远不要将npm install与sudo一起使用!这创建了用root作为所有者而不是所有者创建的项目。

最新更新