create-react-app本地开发服务器执行yarn/npm start出现权限报错问题
问题根因
你遇到的报错并非Node.js包管理工具或开发服务器本身的权限问题,核心原因是create-react-app默认会在服务启动成功后自动唤起系统默认浏览器firedragon,普通用户运行时无法正常找到/启动该浏览器进程,才触发了崩溃退出。
可行解决方案
- 方案1:禁用自动打开浏览器功能
启动命令前添加环境变量即可正常启动,无需sudo:
如需永久生效,在项目根目录新建BROWSER=none yarn start.env文件,添加如下配置即可,后续直接执行yarn start即可正常启动:
服务启动后你可以手动打开浏览器访问对应地址即可。BROWSER=none - 方案2:修复浏览器唤起逻辑
先在普通用户权限的终端执行firedragon,确认能否正常启动浏览器:- 如果提示命令不存在,可将firedragon的安装路径添加到当前用户的
PATH环境变量中,也可以将系统默认浏览器替换为普通用户可正常启动的其他浏览器 - 如果需要固定指定浏览器路径,可在项目
.env文件中添加如下配置(路径可通过sudo which firedragon查询获取):
BROWSER=/usr/bin/firedragon - 如果提示命令不存在,可将firedragon的安装路径添加到当前用户的
- 方案3:修复项目目录权限
此前你用sudo执行过启动命令,可能导致项目目录下存在root权限的缓存文件,引发后续读写权限异常,可以执行以下命令将项目文件所有权改回当前用户:sudo chown -R $USER:$USER 你的项目根目录路径
内容的提问来源于stack exchange,提问作者Joshua Wood
相关产品推荐
相关产品推荐

