解决 npm intasll 安装报错 Error: EPERM: operation not permitted

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】然后进行环境变量的配置。

本次分享到此结束,感谢大家的阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/41118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows 如何选择多个文件?连续选择和间隔选择都有方法

在我们使用电脑的时候可能会遇见需要选择多个文件的情况,这些文件可能是连续的也有可能是间隔开的,这时候你知道都有哪些方法可以帮助我们进行选择吗?下面就分情况总结了不同的选择多个文件的方法,接下来就一起来看一看。 连续多…

LLM 大模型企业应用实战(-“消灭”LLM幻觉的利器

大模型在一定程度上去改变了我们生活生工作的思考的方式,然后也越来越多的个人还有企业在思考如何将大模型去应用到更加实际的呃生产生活中去,希望大语言模型能够呃有一些更多企业级别生产落地的实践,然后去帮助我们解决一些业务上的问题。 …

数字货币高频交易策略解析:深入理解与实践指南

随着数字货币市场的蓬勃发展,高频交易(High-Frequency Trading, HFT)逐渐成为投资者关注的焦点。高频交易以其快速的交易执行和微小的利润累积而闻名,是量化交易领域中的一颗璀璨明珠。本文将为读者提供一份深入浅出的高频交易策略…

linux - cp 命令

问:cp -r ./src/. ./dst 与 cp -r ./src/* ./dst 有什么区别? 1.隐藏文件和目录:cp -r ./src/* ./dst 不会复制隐藏文件和目录。cp -r ./src/. ./dst 会复制所有文件和目录,包括隐藏文件和目录。 2.通配符和当前目录:* 是一个通…

react 项目中预防xss攻击的插件 dompurify

一、安装 $ yarn add dompurify $ yarn add --dev types/dompurify 二、使用 import DOMPurify from dompurify;// 1、处理: DOMPurify.sanitize(htmlContent)// 2、之后放进 dangerouslySetInnerHTML dangerouslySetInnerHTML{{ __html: cleanHTML }} 如&#…

大模型提示词工程和落地思考

本文是一篇内部的个人分享(已无敏感信息) ,目的是增加产品、开发同学对 LLM 的理解,以降低沟通中的阻力,更好推进落地。 以下经脱敏后的原文: 大模型并不神奇 很多人听到’大模型’这个词可能会觉得很神秘&#xff…

守护家庭的安全卫士:家用可燃气体探测器

在这个追求智能与安全并重的时代,每一个细微之处的防护都显得尤为重要,尤其是在我们最为依赖的家庭空间里。当谈及家居安全,燃气安全无疑占据着至关重要的位置。据统计,每年因燃气管老化、连接处松动等问题引发燃气泄漏的事故不在…

uboot方便编译之增加mk脚本文件

每次编译uboot都要输入一长串命令,为了方便,建立一个mkuboot脚本简化操作 touch mkUboot.sh chmod 777 mkUboot.sh#!/bin/shif [ "$1" ] && [ "$1" "debug" ] ; thenecho " debug version uboot" elif [ "$1" ] …

赋能电子行业:三品PLM软件系统如何加速电子产品创新

在当今竞争激烈的市场中,企业如何通过技术创新和管理优化来提升自身的竞争力,已成为一个重要课题。电子行业快速发展的同时也遇到了不少的困难,使得企业效率低下、产能没能跟上时代的发展。而PLM系统的出现,给了电子行业新的希望。…

轻空间承建上海六十中学多功能气膜馆

上海六十中学多功能气膜馆为师生提供了一个现代化、环保且多功能的运动和活动场所。这座气膜馆不仅为校园提供了全天候、舒适的环境,还为上海六十中学的师生带来了全新的健身、活动和教学体验。作为轻空间(江苏)膜科技有限公司(以…

Spring Boot:轻松设置全局异常处理

Spring Boot:轻松设置全局异常处理 在软件开发中,异常处理是一项至关重要的任务。对于使用Spring Boot的开发者来说,设置全局异常处理不仅可以提高代码的整洁度,还可以提升用户体验。本文将详细介绍如何在Spring Boot中轻松设置全…

C++:对象begin()->second

在C中,begin 函数是一个非常重要的成员函数(或对于非成员函数容器,如标准库中的容器,它是一个全局函数),它返回一个指向容器中第一个元素的迭代器(iterator)。迭代器是一种允许程序遍…

Cobra

Cobra 是一个 Go 语言开发的命令行(CLI)框架,它提供了简洁、灵活且强大的方式来创建命令行程序。它包含一个用于创建命令行程序的库(Cobra 库),以及一个用于快速生成基于 Cobra 库的命令行程序工具&#xf…

QListView自定义item(结合QSqlQueryModel)

QListView:绘制自定义List(一)——设置ItemDelegate_qt_繁星执着-开放原子开发者工作坊 (csdn.net) QListView自定义Item_qlistview 自定义item-CSDN博客 结合我写的上一篇文章: QTableView与QSqlQueryModel的简单使用-CSDN博客 这次尝试…

AGI 之 【Hugging Face】 的【Transformer】的 [ Transformer 架构 ] / [ 编码器 ]的简单整理

AGI 之 【Hugging Face】 的【Transformer】的 [ Transformer 架构 ] / [ 编码器 ]的简单整理 目录 AGI 之 【Hugging Face】 的【Transformer】的 [ Transformer 架构 ] / [ 编码器 ]的简单整理 一、简单介绍 二、Transformer 三、Transformer架构 四、编码器 1、自注意…

vscode使用ssh连接远程服务器

开工啦 vscode连接远程服务器(傻瓜式教学) 正常根据上面文章的步骤就可以连接了 报错可以尝试的文章: VScode通过remote ssh连接虚拟机 & 报错过程试图写入的管道不存在(已解决) vscode remote ssh linux[血泪…

从硬件角度看Linux的内存管理

1. 分页机制 分段机制的地址映射颗粒度太大,以整个进程地址空间为单位的分配方式导致内存利用率不高。 分页机制把这个分配机制的单位继续细化为固定大小的页(Page),进程的虚拟地址空间也按照页来分割,这样常用的数据和代码就可以以页为单位…

代码随想录算法训练营第二天|【数组】209.长度最小的子数组

题目 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。 示例: 输入:s 7, nums [2,3,1,2,4,3] 输出&#…

创建React项目

使用 create-react-app快速搭建开发环境 create-react-app 是一个快速创建React开发环境的工具,底层由Webpack构建,封装了配置细节,开箱即用。 安装npx npx是一个由Node.js官方提供的用于快速执行npm包中的可执行文件的工具,np…

Spring 泛型依赖注入

Spring 泛型依赖注入,是利用泛型的优点对代码时行精简,将可重复使用的代码全部放到一个类之中,方便以后的维护和修改,同时在不增加代码的情况下增加代码的复用性。 示例代码: 创建实体类 Product package test.spri…