You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

create-react-app创建项目时node_modules触发EACCES权限报错问题

问题根因

报错EACCES: permission denied, rename <project-path>/node_modules/cra-template的核心原因是npm权限配置异常:

  • 之前存在使用sudo执行npm全局安装/npx命令的操作,导致npm缓存目录、全局包目录下的文件归属为root用户
  • npx运行create-react-app时以当前普通用户身份执行,拉取模板、安装依赖过程中没有权限修改root归属的文件,直接在重命名模板目录环节中断流程
    手动修改单个项目node_modules归属的方案仅能修复当前项目的临时权限问题,没有解决全局npm配置的错误,因此每次新建项目都需要重复操作。
一次性永久修复方案

修复全局npm权限配置后,后续所有npx create-react-app命令都可以直接运行,无需额外手动改权限:

  • 第一步:修复npm相关用户目录的归属权,把之前被sudo改成root所有的文件权限切回当前用户
    sudo chown -R $USER:$USER ~/.npm
    sudo chown -R $USER:$USER ~/.config
    

    如果你自定义过npm全局安装前缀,可通过npm config get prefix查询实际路径,将上述命令中的路径替换为查询到的路径即可。

  • 第二步:强制清理npm缓存,删除残留的带异常权限的缓存包
    npm cache clean --force
    
  • 第三步(推荐,彻底杜绝npm权限问题):将npm全局安装路径修改到用户目录下,避免后续需要sudo执行npm全局操作
    1. 创建用户级全局npm包目录:
      mkdir -p ~/.npm-global
      
    2. 配置npm使用该目录作为全局安装路径:
      npm config set prefix ~/.npm-global
      
    3. 将该路径加入系统环境变量:根据你使用的shell,打开对应的配置文件(zsh对应~/.zshrc,bash对应~/.bashrc),在文件末尾添加如下内容:
      export PATH=~/.npm-global/bin:$PATH
      
    4. 让配置立即生效:
      # zsh用户执行
      source ~/.zshrc
      # bash用户执行
      source ~/.bashrc
      
  • 第四步:验证修复,删除之前创建失败的项目目录,重新执行创建命令即可一次性成功
    rm -rf my-app
    npx create-react-app my-app
    
注意事项
  • 绝对不要用sudo执行npx create-react-app,会导致生成的项目文件归属root,后续开发、运行命令时仍会触发权限报错
  • 如果你使用nvm管理Node.js版本,默认不会出现这类权限问题——nvm安装的所有Node、npm相关文件都存放在用户目录下,不会涉及root权限操作;这类权限问题几乎都出现在直接通过系统包管理器(apt、yum、官方pkg安装包)安装Node.js的场景下。

内容的提问来源于stack exchange,提问作者Austin Rhoads

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 05:57:31