解决npm的 EACCES: permission denied 问题

本文介绍了解决npm安装全局包时遇到的权限错误问题,并提供了具体的命令来修改文件夹的所有者和权限,帮助开发者顺利进行项目开发。

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

居上位而不骄,在下者而不忧。

在这里插入图片描述

平时项目开发使用npm都顺风顺水的,but今天新建项目时,就出现了权限错误,具体如下:
在这里插入图片描述
但是通过下面的提示就可以轻松解决。

sudo chown -R 502:20 “/Users/cheng.wang/.npm”

官网相关议题:Resolving EACCES permissions errors when installing packages globally


但是在开发的过程中,运行npm run dev命令之后,稍动代码就报如下错误:
在这里插入图片描述
继续运行如下命令:

sudo chown -R 502:20 “/Users/cheng.wang/.vue3_pro”


本质上就是修改文件夹的所有者。

sudo chown -R 用户名 "目录名“

Linux/ Mac修改文件权限的方法

1. 更改文件和目录的拥有者:chown

语法:

chown -R 文件的新拥有者 文件名

-R:对目录及该目录下的所有文件和子目录都进行相同的操作,即递归更改目录的所有者

2. 改变文件和目录的存取权限:chmod

只能是文件所有者和特权用户才能使用

语法:

chmod 【-R】 权限值 文件名1 文件名2

-R :对目录及该目录下的所有文件和子目录都进行相同的操作;

更加详细的内容:Linux中chown和chmod的用法

### 解析 EACCES 权限拒绝错误 当遇到 `EACCES: permission denied, mkdir` 错误时,这通常意味着当前用户没有足够的权限来创建指定的目录或写入特定位置。此类问题可能发生在安装全局包或者在受保护路径下操作时。 #### 使用 sudo 提升权限 对于需要更高权限的操作,可以尝试通过 `sudo` 命令提升权限来进行安装: ```bash sudo npm install -g package-name --unsafe-perm=true --allow-root ``` 此命令允许以超级用户身份运行并忽略某些安全限制[^2]。 #### 修改文件夹权限 如果目标是在某个具体的工作空间中解决问题,则可以通过更改该工作区文件夹的访问权限来实现: ```bash sudo chmod -R 755 /path/to/project/directory ``` 上述命令会递归地设置项目目录及其子项的读取、执行权限给所有人,并赋予所有者写入权限[^3]。 #### 配置 nvm 和多版本管理器 为了避免频繁使用 `sudo` 及其带来的安全隐患,在 macOS 或 Linux 上推荐采用 Node 版本管理工具如 nvm (Node Version Manager),它可以帮助更方便地管理和切换不同版本的 Node.js 而无需管理员权限: ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash source ~/.bashrc nvm install stable ``` 这些脚本将下载最新稳定版的 Node 并自动配置环境变量以便立即可用[^4]。 #### 更改 npm 的默认 global prefix 为了防止未来再次发生类似的权限问题,还可以考虑改变 npm 默认存储全局模块的位置到一个不需要特殊权限的地方: ```bash mkdir ~/npm-global npm config set prefix '~/npm-global' export PATH="$HOME/npm-global/bin:$PATH" echo 'export PATH="$HOME/npm-global/bin:$PATH"' >> ~/.profile ``` 这段代码会在用户的家目录下建立一个新的全局模块存放点,并更新系统的 PATH 环境变量使其生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值