You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用npm install -g create-react-app安装React应用时遭遇EPERM权限错误的技术求助

解决npm全局安装create-react-app时的EPERM权限错误

我来帮你搞定这个问题,这在Windows上使用npm全局安装包时是很常见的权限问题——因为npm默认想把全局包安装到系统目录C:\Windows\system32\node_modules,而普通用户没有这个目录的写入权限。下面给你几个实用的解决方案:

方案1:以管理员身份运行命令提示符(快速临时解决)

这是最直接的办法,先拿到系统写入权限:

  • 按下Win键,搜索「命令提示符」
  • 右键点击它,选择「以管理员身份运行」
  • 在弹出的管理员命令窗口里,重新执行安装命令:
    npm install -g create-react-app
    

方案2:修改npm全局安装目录(推荐,一劳永逸)

为了避免以后再遇到类似权限问题,建议把npm的全局包安装到用户目录下的自定义文件夹:

  1. 先创建两个文件夹,比如:
    • C:\Users\Lagnajeet Jena\npm-global(用来存放全局包)
    • C:\Users\Lagnajeet Jena\npm-cache(用来存放npm缓存)
  2. 打开普通命令提示符,执行以下命令设置npm的路径:
    npm config set prefix "C:\Users\Lagnajeet Jena\npm-global"
    npm config set cache "C:\Users\Lagnajeet Jena\npm-cache"
    
  3. C:\Users\Lagnajeet Jena\npm-global\bin添加到系统环境变量的Path里:
    • 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
    • 在「系统变量」里找到Path,点击「编辑」
    • 添加刚才的路径,保存退出
  4. 重启命令提示符,再执行npm install -g create-react-app就可以正常安装了

方案3:临时关闭杀毒软件(如果上述方案无效)

有时候杀毒软件会拦截npm写入系统目录的操作,你可以临时关闭杀毒软件后再尝试安装,安装完成后再重新开启。


附你遇到的完整报错信息:

npm ERR! code EPERM 
npm ERR! syscall mkdir 
npm ERR! path C:\Windows\system32\node_modules 
npm ERR! errno -4048 
npm ERR! Error: EPERM: operation not permitted, mkdir 'C:\Windows\system32\node_modules' 
npm ERR! [OperationalError: EPERM: operation not permitted, mkdir 'C:\Windows\system32\node_modules'] { 
npm ERR! cause: [Error: EPERM: operation not permitted, mkdir 'C:\Windows\system32\node_modules'] { 
npm ERR! errno: -4048, 
npm ERR! code: 'EPERM', 
npm ERR! syscall: 'mkdir', 
npm ERR! path: 'C:\\Windows\\system32\\node_modules' 
npm ERR! }, 
npm ERR! errno: -4048, 
npm ERR! code: 'EPERM', 
npm ERR! syscall: 'mkdir', 
npm ERR! path: 'C:\\Windows\\system32\\node_modules', 
npm ERR! parent: 'create-react-app' 
npm ERR! } 
npm ERR! 
npm ERR! 操作系统拒绝了该操作。
npm ERR! 可能是文件正被其他程序占用(如文本编辑器或杀毒软件),
npm ERR! 或者您缺乏访问该文件的权限。
npm ERR! 
npm ERR! 如果您认为这是权限问题,请仔细检查文件及其所在目录的权限,或者尝试以管理员/root身份重新运行该命令。
npm ERR! 本次运行的完整日志可在以下路径查看:
npm ERR! C:\Users\Lagnajeet Jena\AppData\Roaming\npm-cache\_logs\2021-08-30T06_59_34_073Z-debug.log

内容的提问来源于stack exchange,提问作者Lagnajeet jena

火山引擎 最新活动