Node.js后端部署到Heroku出现MODULE_NOT_FOUND错误如何解决
Node.js项目Heroku部署MODULE_NOT_FOUND错误修复方案
大小写路径匹配校验
Heroku底层运行的是大小写敏感的Linux系统,Windows、macOS本地环境默认大小写不敏感,路径大小写不匹配不会触发报错。请检查index.js中引入auth.js的require语句,确认路径大小写与实际文件、文件夹命名完全一致:例如文件夹实际命名为routers全小写,但代码中写为require('./Routers/auth')就会触发对应报错,统一大小写即可解决。依赖包归属检查
确认所有代码中引入的第三方依赖全部写入package.json的dependencies字段,不要放置在devDependencies下:Heroku部署时默认不会安装devDependencies中的包。你可以本地执行npm install --production模拟Heroku的安装环境,运行项目复现问题排查遗漏依赖。Procfile配置校验
确认Procfile没有多余后缀名(不要存为Procfile.txt),启动命令配置正确,标准配置示例如下:
web: node index.js
同时确认代码中端口监听逻辑使用process.env.PORT || 本地自定义端口,不要硬编码固定端口号,Heroku会自动分配运行端口。
- Git提交文件校验
确认Routers文件夹、auth.js文件没有被.gitignore规则过滤,已经提交到Git仓库。部署时缺失对应文件也会触发MODULE_NOT_FOUND报错,可执行git ls-files查看所有Git跟踪的文件,确认目标文件在列表中。
内容的提问来源于stack exchange,提问作者mozart
相关产品推荐
相关产品推荐

