React应用重启时npm start执行失败,遇脚本缺失提示及权限问题
React应用重启时npm start执行失败,遇脚本缺失提示及权限问题
看起来你碰到了两个连锁问题:先是npm start找不到对应的启动脚本,后续处理时又遭遇了权限报错,我来一步步帮你排查解决。
一、先解决「Missing script: "start"」问题
你提供的package.json里明明配置了start脚本,出现这个提示最常见的原因是你没有在项目根目录下执行命令。create-react-app生成的项目,根目录是包含package.json的那个文件夹,你需要先进入正确的目录:
- 打开终端,运行
cd new-app(把new-app换成你的实际项目文件夹名称) - 可以用
ls(Mac/Linux)或dir(Windows)命令确认当前目录下是否有package.json文件
如果确认在根目录还是报错,试试清除npm缓存后重试:
npm cache clean --force npm start
二、解决EACCES权限问题
你更新全局npm、重装依赖时遇到的权限错误,是因为当前用户没有修改系统级目录/usr/local/lib/node_modules的权限,不建议用sudo强制执行(会引发后续更多权限混乱),推荐两种安全的解决方式:
方式1:修改npm全局安装目录到用户专属目录
这种方法不需要额外工具,直接调整npm的配置:
- 创建一个用户级的全局npm存储目录:
mkdir ~/.npm-global - 配置npm使用这个新目录:
npm config set prefix '~/.npm-global' - 将这个目录添加到系统环境变量
PATH中:- 如果你用的是Bash终端,编辑
~/.bash_profile或~/.bashrc文件,添加一行:export PATH=~/.npm-global/bin:$PATH - 如果你用的是Zsh终端,编辑
~/.zshrc文件,添加同样的内容
- 如果你用的是Bash终端,编辑
- 刷新终端配置:
# Bash终端 source ~/.bash_profile # Zsh终端 source ~/.zshrc - 现在再运行全局npm更新命令就不会有权限问题了:
npm install -g npm@latest
方式2:用nvm管理Node.js和npm
nvm(Node Version Manager)会把Node和npm安装在用户目录下,从根源避免权限问题:
- 安装nvm(通过官方提供的安装脚本完成,安装后重启终端生效)
- 安装最新版Node.js:
nvm install node - 切换到刚安装的Node版本:
nvm use node - 之后所有npm操作都不会再出现EACCES权限报错
三、最后恢复项目运行
处理完权限问题后,回到项目根目录,重新执行以下步骤:
# 删除旧的依赖包 rm -rf node_modules # 重新安装依赖 npm install # 启动项目 npm start
这样应该就能正常重启你的React应用了。
备注:内容来源于stack exchange,提问作者Christian Lim
相关产品推荐
相关产品推荐

