使用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的全局包安装到用户目录下的自定义文件夹:
- 先创建两个文件夹,比如:
C:\Users\Lagnajeet Jena\npm-global(用来存放全局包)C:\Users\Lagnajeet Jena\npm-cache(用来存放npm缓存)
- 打开普通命令提示符,执行以下命令设置npm的路径:
npm config set prefix "C:\Users\Lagnajeet Jena\npm-global" npm config set cache "C:\Users\Lagnajeet Jena\npm-cache" - 把
C:\Users\Lagnajeet Jena\npm-global\bin添加到系统环境变量的Path里:- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」里找到
Path,点击「编辑」 - 添加刚才的路径,保存退出
- 重启命令提示符,再执行
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




