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

部署Serverless AWS Lambda时Webpack未打包全部依赖,报错需手动安装pg包

问题根因

你遇到的依赖缺失问题是Sequelize的动态加载机制导致的:Sequelize会根据你配置的数据库类型动态加载对应的驱动包(pg、pg-hstore属于PostgreSQL驱动),webpack做静态依赖扫描时无法识别这种隐式依赖,因此serverless-webpack在收集要打包的外部模块时就会漏掉这两个包。

解决方案

按优先级可选以下任意一种方案即可:

方案1:强制指定打包依赖(最便捷)

修改serverless.ts中的webpack配置,强制将pg、pg-hstore纳入打包范围:

custom: {
  webpack: {
    webpackConfig: './webpack.config.js',
    includeModules: {
      // 新增强制包含的依赖
      forceInclude: ['pg', 'pg-hstore']
    },
  },
},

修改后重新打包即可在日志中看到pg、pg-hstore被纳入打包的外部模块列表。

方案2:代码显式引入依赖

在你初始化Sequelize实例的代码文件顶部,手动引入两个驱动包:

import 'pg'
import 'pg-hstore'

webpack扫描到显式导入后会自动将这两个包纳入依赖树,无需修改打包配置。

检查项

执行上述操作前先确认两个点:

  • pg和pg-hstore是写在package.json的dependencies字段下,而非devDependencies下,serverless-webpack默认不会打包开发依赖
  • 可以删除webpack.config.js中的externals: [nodeExternals()]配置:开启includeModules: true后serverless-webpack会自动处理node_modules外部化逻辑,自行配置nodeExternals可能会和插件的依赖收集逻辑冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:15:04