Rails集成Vue 3项目执行npm run build或部署至Heroku时出现Module not found错误
解决Vue 3 + Rails项目部署/build时找不到
./src/main.js的问题 看起来你遇到的核心问题是构建工具无法找到指定的入口文件./src/main.js——本地运行正常但Linux环境(Heroku或本地执行npm run build)触发错误,大概率是路径配置、环境差异或文件缺失导致的。下面是几个针对性的排查和解决方向:
1. 确认文件路径与大小写一致性
Linux环境(包括Heroku)是大小写敏感的,而Windows/macOS默认不区分大小写,这很容易踩坑:
- 检查项目根目录下是否真的存在
src/main.js,而非Src/Main.js或其他大小写变体 - 确认所有配置文件中引用的路径和实际文件路径完全一致,包括大小写细节
2. 检查Vue CLI的入口配置
如果项目用Vue CLI构建,默认入口是src/main.js,但自定义vue.config.js可能修改了这个路径:
- 打开项目根目录的
vue.config.js(没有则跳过),检查configureWebpack或chainWebpack中是否有修改entry的配置 - 示例正确的入口配置:
module.exports = { configureWebpack: { entry: './src/main.js' } }
3. 验证Rails集成的构建配置
作为Rails + Vue的组合项目,可能用了jsbundling-rails或webpacker,需要确认Rails端的构建配置:
- 打开
config/webpack/environment.js,检查入口点设置是否指向正确的main.js路径 - 如果用
jsbundling-rails,确认package.json的build命令是否正确关联Vue构建脚本,比如:
"scripts": { "build": "vue-cli-service build", "dev": "vue-cli-service serve" }
4. 清理依赖缓存与重建
依赖缓存或旧构建文件可能导致路径识别异常,试试彻底清理后重建:
- 执行以下命令清理本地依赖和缓存:
rm -rf node_modules package-lock.json npm install
- 再尝试执行
npm run build,看是否解决问题
5. 检查Git提交与Heroku部署文件
确保src目录没有被意外排除在Git追踪之外:
- 打开
.gitignore文件,确认没有src/相关的忽略规则 - 执行
git status查看src目录是否被追踪,确保已经提交到仓库——只有提交的文件才会被部署到Heroku
如果以上步骤都尝试后仍未解决,建议补充你的environment.js完整内容和仓库结构细节,这样能更精准地定位问题。
内容的提问来源于stack exchange,提问作者Martin DUBOIS
相关产品推荐
相关产品推荐

