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

使用Serverless Framework部署NestJS应用时zip包需包含哪些必要文件?

部署Serverless NestJS应用的必需文件与打包优化方案

不需要将全部项目文件打包进zip包,/src、/test这类非运行时目录完全可以删除,仅保留运行时必需的资源即可,既可以减小包体积,也能提升Serverless函数的冷启动速度。

必需保留的运行时文件

  • 编译后的JavaScript产物目录:也就是NestJS执行npm run build后生成的/dist目录,是应用运行的核心文件
  • 包管理配置文件:package.json,以及对应的锁文件(package-lock.json/yarn.lock/pnpm-lock.yaml)
  • 仅安装了生产依赖的node_modules目录:不要包含typescript、jest、eslint等开发阶段才需要的依赖包
  • 业务所需的静态资源目录(如有):比如存放静态文件的/public目录、模板文件目录等
  • 生产环境变量配置文件(如有):比如.env.production这类线上生效的环境变量文件

可以完全排除的文件列表

  • 源码与测试相关:/src目录、/test测试目录、各类测试用例文件、tsconfig.json等编译配置文件
  • 开发工具配置:.eslintrc、.prettierrc、jest.config.js等代码规范、测试工具配置文件
  • 项目无关文件:.git目录、.gitignore、README文档、CHANGELOG日志、本地临时文件、日志文件等
  • 本地环境配置:.env.development、.env.local等本地开发用的环境变量文件

推荐的打包配置示例

在serverless.yml中添加package配置段,采用「先全量排除再按需引入」的策略,保证打包内容最小化:

package:
  individually: true
  excludeDevDependencies: true # 自动排除开发依赖,建议显式声明开启
  exclude:
    - "**/*" # 先排除所有文件
  include:
    - "dist/**"
    - "node_modules/**"
    - "package.json"
    # 如有静态资源可补充配置
    # - "public/**"
    # 如有生产环境变量文件可补充配置
    # - ".env.production"

配置完成后再执行serverless deploy,生成的zip包就只会包含指定的必需文件。你也可以在打包前先执行npm ci --only=production重新安装仅含生产依赖的依赖包,进一步降低最终zip包的体积。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:06:05