npm intasll 安装报错 Error: EPERM: operation not permitted, mkdir ‘C:\Program Files\nodejs\node_cache\_

本文详细指导了Node.js全局模块安装时遇到的'operation not permitted'错误,通过重置npm配置、删除.npmrc文件、调整默认安装路径权限等步骤来解决,适合开发者遇到类似问题时参考。

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

Node.js安装及环境配置完成之后 npm install express -g 安装全局的模块报错提示没有权限operation not permitted mkdir 错误编号4048:

其原因是当前用户操作该目录权限不足,当以管理员身份运行cmd,再执行npm install express -g 是不会报权限不足的错误的。

解决办法有三种方法:

方法一:重新配置环境变量 将npm安装的全局模块所在的路径,以及缓存cache的路径放在其他目录中别放Node.js的默认安装目录(“C:\Program Files\nodejs”)中。

具体操作如下:

1、选择其他盘符如D盘或者是E盘目录下创建NodeDevelop文件夹,再在【NodeDevelop】下分别创建【node_cache】和【node_global】两个文件夹用于对应全模块所在路径和缓存路径。例如我创建的两个文件夹实在【D:\Program Files\NodeDevelop】目录下如下图所示:

 2、创建完两个空文件夹【node_cache】和【node_global】之后,打开cmd命令窗口,输入如下命令,如图所示

npm config set prefix "D:\Program Files\NodeDevelop\node_global"
npm config set cache "D:\Program Files\NodeDevelop\node_cache"

npm config set prefix "D:\Program Files\NodeDevelop\node_global"

npm config set cache "D:\Program Files\NodeDevelop\node_cache"

3、接下来设置环境变量,关闭cmd窗口,“我的电脑”-右键-“属性”-“高级系统设置”-“环境变量”

4、进入环境变量对话框,在【系统变量】下新建【NODE_PATH】,输入【D:\Program Files\NodeDevelop\node_global\node_modules】,将【用户变量】下的【Path】修改为【D:\Program Files\NodeDevelop\node_global】 ;注意如果【node_global】文件夹下没有【node_modules】新建一个文件夹命名为node_modules即可。

 5、重新配置完成环境变量之后关闭配置,打开打开cmd窗口,输入如下命令进行模块的全局安装,测试一下即可。

npm install express -g    # -g是全局安装的意思

方法二:删除.npmrc文件

如果安装Node.js时使用的是默认安装路径(“C:\Program Files\nodejs”)安装完成之后会在C盘的目录下生成一.npmrc文件文件,该文件在:C:\Users{账户}\下的.npmrc文件。一般这种类型的文件都是默认被隐藏,Window10查看隐藏文件的方法如下:

 查找.npmrc文件的方法:

删除后测试一下即可。

方法三:更改默认安装路径【C:\Program Files\nodejs】下,我们自己创建的【node_cache】和【node_global】两个文件夹的操作权限,具体操作如下所示:

选择【node_cache】点击鼠标右键选择属性,打开其属性对话框,切换到”安全“项,点击编辑按钮,打开【node_cache】的权限对话框,选中Users将Users的权限下的“完全控制”和“修改”两项勾选上(默认是不勾选的),点击确定即可。

 【node_global】的操作权限参照【node_cache】修改一下即可。修改完成之后打开cmd窗口,进行测试。


还有一种最简单直接的办法就是:将安装在默认路径【C:\Program Files\nodejs】下的Node.js卸载掉重新安装,重新安装Node.js时将默认的安装路径目录【C:\Program Files\nodejs】修改成其他的安装目录如【D:\Program Files\nodejs】安装完成之后,再在【D:\Program Files\nodejs】下创建完两个空文件夹【node_cache】和【node_global】然后进行环境变量的配置

### 解决方案 当遇到 `npm ERR! { Error: EPERM: operation not permitted, mkdir 'D:\bs\nodejs\node_cache_npx'}` 错误时,通常是因为 Node.js安装目录缺少写入权限。以下是几种可能的解决方案: #### 方法一:修改 Node.js 安装目录的权限设置 可以通过调整 Node.js 安装目录的权限来解决问题。具体操作如下: 1. 找到 Node.js安装路径(例如 `D:\bs\nodejs`)。 2. 右键点击该文件夹并选择“属性”。 3. 切换到“安全”选项卡,编辑当前用户的权限,确保拥有完全控制权[^3]。 #### 方法二:以管理员身份运行命令提示符 如果权限不足可能是由于未以管理员身份运行 CMD 或 PowerShell 导致,则可以尝试以下方式: 1. 使用 Windows 搜索功能打开“CMD”或“PowerShell”。 2. 右键单击程序图标,选择“以管理员身份运行”。 3. 再次执行原 npm 命令,观察是否仍然报错[^5]。 #### 方法三:更改全局模块存储路径 为了避免频繁修改系统权限,可以选择更改 npm 默认的全局模块存储路径至用户目录下的某个子文件夹。通过以下步骤实现: 1. 创建一个新的文件夹作为新的缓存目录,例如 `C:\Users\<YourUsername>\npm-global`。 2. 运行以下命令将全局包路径更改为新创建的文件夹: ```bash npm config set prefix "C:\Users\<YourUsername>\npm-global" ``` 3. 将此路径添加到系统的环境变量 PATH 中[^4]。 #### 方法四:重置 NPM 缓存 有时缓存损坏也可能引发此类问题,因此清除现有缓存是一个可行的选择: ```bash npm cache clean --force ``` 完成上述任一步骤后再试一次原来的 npm 命令即可验证效果。 --- ### 示例代码 为了进一步确认配置无误,可测试简单的依赖项安装过程: ```javascript // 测试脚本 test-npm-install.js console.log('Attempting to install lodash...'); require('child_process').execSync('npm install lodash', { stdio: 'inherit' }); console.log('Lodash installed successfully.'); ``` 运行以上 JavaScript 文件前需先保存它,并通过 Node.js 来调用。 ---
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值