运行React旧项目时出现Swagger-client模块缺失及EBUSY错误求助
问题求助
这是一个较旧的React项目,本人对React并不精通。尝试以管理员模式运行、删除node_modules文件夹等方法后,问题仍未解决,且未找到其他错误日志,特来求助。
环境信息
- NPM Version: 10.1.0
- Node Version: v20.9.0
报错信息
Module not found: Can't resolve '@swagger-api/apidom-reference/configuration/empty' in '[PATH]\project\node_modules\swagger-client\es\execute'
Error from chokidar (C:): Error: EBUSY: resource busy or locked, lstat 'C:\DumpStack.log.tmp'
项目package.json配置
{ "name": "[PROJECT]", "version": "0.1.0", "private": true, "dependencies": { "@fortawesome/fontawesome-svg-core": "^1.2.30", "@fortawesome/free-solid-svg-icons": "^5.14.0", "@fortawesome/react-fontawesome": "^0.1.11", "@material-ui/core": "^3.9.4", "@material-ui/icons": "^3.0.2", "dotenv": "^8.2.0", "jquery": "^3.5.1", "jwt-decode": "^2.2.0", "linkifyjs": "^2.1.9", "sass": "latest", "react": "^16.13.1", "react-bootstrap": "^1.3.0", "react-color": "^2.18.1", "react-dom": "^16.13.1", "react-draggable": "^4.4.3", "react-dynamic-modal": "^1.1.1", "react-google-recaptcha": "^2.1.0", "react-is": "^16.13.1", "react-lines-ellipsis": "^0.14.1", "react-redux": "^7.2.1", "react-router": "^5.2.0", "react-router-dom": "^5.2.0", "react-scripts": "^3.4.3", "redux": "^4.0.5", "redux-saga": "^1.1.3", "redux-thunk": "^2.3.0", "styled-components": "^5.1.1", "swagger-client": "^3.10.12" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject", "build:dev": "REACT_APP_ENV=development react-scripts build", "build:production": "REACT_APP_ENV=production react-scripts build" }, "eslintConfig": { "extends": "react-app" }, "browserslist": [ ">0.2%", "not dead", "not ie <= 11", "not op_mini all" ], "devDependencies": { "@babel/cli": "^7.10.5", "@babel/core": "^7.11.4", "@babel/preset-flow": "^7.10.4", "babel-cli": "^6.26.0", "babel-preset-flow": "^6.23.0", "flow": "^0.2.3", "flow-bin": "^0.132.0", "prettier": "^2.0.5", "yarn-check": "^0.0.3" }, "description": "[PROJECT]", "main": "index.js", "repository": "[REPO]", "author": "[PROCESS]", "license": "[REPO]" }
解决方案
模块找不到问题处理
- 调整swagger-client版本:当前
swagger-client@3.10.12和Node v20兼容性不佳,且依赖的@swagger-api/apidom-reference存在路径匹配问题。将package.json中swagger-client的版本改为3.10.0,然后执行:
npm install
- 手动安装对应依赖:直接安装swagger-client匹配版本的
@swagger-api/apidom-reference,执行:
npm install @swagger-api/apidom-reference@0.39.0
(注:0.39.0是swagger-client@3.10.12对应的依赖版本,可通过查看node_modules/swagger-client/package.json确认)
EBUSY资源锁定问题处理
- 释放占用进程:
C:\DumpStack.log.tmp被系统进程(如Windows错误报告)或杀毒软件锁定,关闭相关进程或暂时禁用杀毒软件后重试。 - 清理临时文件:手动删除
C:\DumpStack.log.tmp,若无法删除,重启电脑后再操作。
长期适配建议
项目使用的react-scripts@3.4.3和Node v20存在兼容性冲突,建议:
- 降级Node版本到v14或v16(react-scripts 3.x官方推荐版本)
- 逐步升级
react-scripts到稳定新版本,同步适配其他依赖版本
内容的提问来源于stack exchange,提问作者Lpuche
相关产品推荐
相关产品推荐

