You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fly.io部署Node.js应用时出现Cannot find module 'express'错误求助

解决Fly.io部署Node.js应用时的"Cannot find module 'express'"错误

问题分析

部署时出现MODULE_NOT_FOUND错误,说明构建过程中未正确安装express依赖,或依赖未被纳入最终运行环境。结合你使用Paketo Node.js buildpack的配置,以下是具体修复方案:

修复步骤

1. 确认express在生产依赖中

打开package.json,确保express位于dependencies字段下,而非devDependencies。生产构建流程通常会跳过devDependencies中的包,依赖位置错误会导致运行时找不到模块。

示例正确配置:

{
  "dependencies": {
    "express": "^4.18.2"
  }
}

2. 调整Fly.io构建配置

当前使用的Paketo buildpack配置可能未正确触发完整的依赖安装流程,建议替换为Fly.io官方适配的Node.js buildpack,简化配置:

修改fly.toml的[build]部分:

[build]
  builder = "flyio/nodejs:18"

官方buildpack会自动处理npm install、环境变量设置和启动脚本检测,无需额外配置BP_NODE_RUN_SCRIPTS。

3. 确保package.json包含启动脚本

在package.json的scripts字段中添加start命令,让Fly.io知晓应用启动方式:

{
  "scripts": {
    "start": "node index.js"
  }
}

4. 验证.gitignore配置

确保.gitignore文件中包含node_modules,避免将本地依赖目录推送到Fly.io。构建过程中buildpack会重新安装依赖,本地node_modules存在可能干扰构建流程:

node_modules/

5. 重新部署应用

完成上述配置后,重新执行部署命令:

fly deploy

内容的提问来源于stack exchange,提问作者Evilink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 23:02:13