Vite项目中npm与Node.js版本兼容性问题求助
问题描述
升级Node.js至18.16.0版本后,运行Vite项目时出现以下错误:
The specified module could not be found. ?\C:\Users\Riaj\OneDrive\Desktop\Program\Backend\Hitesh choudury class\fullstackbasicApp\frontend\node_modules@rollup\rollup-win32-x64-msvc\rollup.win32-x64-msvc.node
已尝试的排查步骤:
- 删除node_modules及package-lock.json文件
- 重新执行
npm install安装依赖 - 检查项目依赖与Node.js 18.16.0的兼容性
项目package.json内容:
{ "name": "frontend", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "vite build", "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview" }, "dependencies": { "@rollup/rollup-win32-x64-msvc": "^4.5.0", "react": "^18.2.0", "react-dom": "^18.2.0" }, "devDependencies": { "@types/react": "^18.2.37", "@types/react-dom": "^18.2.15", "@vitejs/plugin-react": "^4.2.0", "eslint": "^8.53.0", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.4", "vite": "^5.0.0" } }
解决方案
1. 移除手动添加的Rollup平台特定依赖
Vite本身已经内置Rollup依赖,手动安装@rollup/rollup-win32-x64-msvc会与Vite依赖的Rollup版本冲突,导致二进制文件无法正确加载。执行以下命令:
npm uninstall @rollup/rollup-win32-x64-msvc # Windows系统执行下面的命令删除文件 del /s /q node_modules && del package-lock.json # macOS/Linux系统执行下面的命令删除文件 rm -rf node_modules package-lock.json npm install
2. 迁移项目至非OneDrive目录
OneDrive同步目录可能存在权限限制或符号链接解析问题,导致Node.js无法读取二进制模块。将项目移动到本地非同步目录(例如C:\Users\Riaj\Desktop\Program\Backend\fullstackbasicApp\frontend),再重新执行依赖安装和项目启动。
3. 清理npm缓存
缓存的损坏二进制包也可能引发该问题,执行以下命令清理缓存后重新安装:
npm cache clean --force rm -rf node_modules package-lock.json npm install
4. 调整Node.js版本(可选)
Vite 5.x兼容Node.js 18.12.0+,但可尝试升级至Node.js 20.x LTS版本(更稳定),或降级到18.12.0~18.15.x区间的版本,验证是否为版本适配问题。
内容的提问来源于stack exchange,提问作者Riaj Mahmud
相关产品推荐
相关产品推荐

