彻底解决全局安装权限问题

这篇博客分享了解决npm全局安装时遇到的EACCES权限问题的方法。通过在用户目录下创建一个.npm-global目录,并设置npm的全局安装路径,避免使用sudo。这不仅解决了权限问题,还避免了后续操作中对root权限的依赖。详细步骤包括创建目录、配置prefix以及更新PATH环境变量。遵循这些步骤,用户可以安全地进行全局npm包的安装和管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错EACCES: permission denied,具体信息如下:

npm ERR! code EACCES
npm ERR! syscall mkdir
npm ERR! path /usr/local/lib/node_modules/@vue
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/@vue'
npm ERR!  [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/@vue'] {
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/usr/local/lib/node_modules/@vue'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.

npm ERR! A complete log of this run can be found in:

虽然像这种权限问题加个sudo运行就可以顺利安装,但这绝非一个好的方法,因为当我之前毫不犹豫这样解决的时候遇到了很多问题。
比如每次像这样的全局安装卸载等操作时都需要sudo
其次因为这个文件是sudo安装的,因此文件权限就是root,之后对这个文件的操作更是会面临诸多问题。

因此我尝试了新的解决方案,创建一个用户有权限的global目录。具体命令如下:

cd ~
mkdir .npm-global
npm config set prefix '~/.npm-global'

更新path

export PATH="~/.npm-global/bin:$PATH"

至此完美解决,此后不需要在每次全局安装都sudo

具体原理是切到用户目录创建用户有权限的全局文件,
将安装prefix目录设置为该目录。当不设置,将默认安装至node安装的目录,最后更新path

在这里插入图片描述

相关文档具体可参考:

  • https://www.npmjs.cn/files/folders/ (npm folder)
  • https://stackoverflow.com/questions/764600/how-can-you-export-your-bashrc-to-zshrc
  • https://www.cnblogs.com/tinywan/p/7224011.html
  • https://stackoverflow.com/questions/58269937/permission-denied-while-trying-to-install-vue-cli
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值