React项目npm run start报错Module not found,寻求调试帮助
问题重现
执行npm run start后网页能正常显示,但抛出编译错误:
Failed to compile.
Module not found: Error: Can't resolve '/Users/bhaviksinghal/Documents/React Projects/Tutorial #2/dojo-blog/node_modules/react-scripts/node_modules/webpack-dev-server/client/index.js?protocol=ws%3A&hostname=0.0.0.0&port=3000&pathname=%2Fws&logging=none&overlay=%7B%22errors%22%3Atrue%2C%22warnings%22%3Afalse%7D&reconnect=10&hot=true&live-reload=true' in '/Users/bhaviksinghal/Documents/React Projects/Tutorial #2/dojo-blog'
ERROR in Module not found: Error: Can't resolve '/Users/bhaviksinghal/Documents/React Projects/Tutorial #2/dojo-blog/node_modules/react-scripts/node_modules/webpack-dev-server/client/index.js?protocol=ws%3A&hostname=0.0.0.0&port=3000&pathname=%2Fws&logging=none&overlay=%7B%22errors%22%3Atrue%2C%22warnings%22%3Afalse%7D&reconnect=10&hot=true&live-reload=true' in '/Users/bhaviksinghal/Documents/React Projects/Tutorial #2/dojo-blog'
调试解决步骤
- 重置依赖安装:大概率是node_modules损坏或依赖解析异常
- 删除项目根目录下的
node_modules文件夹:rm -rf node_modules(Mac/Linux),Windows系统用rmdir /s /q node_modules - 删除
package-lock.json(npm)或yarn.lock(yarn)文件:rm package-lock.json - 重新安装依赖:
npm install
- 删除项目根目录下的
- 清除npm缓存:缓存污染也可能导致依赖安装异常
执行npm cache clean --force,完成后再重新执行npm install - 检查项目路径:你的项目路径包含
#和空格这类特殊字符,webpack解析路径时容易出问题
把项目文件夹重命名为不含特殊字符的名称(比如Tutorial-2),然后重新运行npm run start - 调整react-scripts版本:版本兼容问题也可能引发该错误
- 更新到最新版:
npm install react-scripts@latest - 如果更新后问题依旧,回退到稳定版本(比如5.0.1):
npm install react-scripts@5.0.1
- 更新到最新版:
- 重置项目配置:如果之前手动修改过react-scripts的内部配置
可以执行npm run eject(注意此操作不可逆),检查webpack配置中的路径设置;或者直接新建一个干净的create-react-app项目,把现有代码迁移过去。
内容的提问来源于stack exchange,提问作者bhaviks

