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

NestJS 项目构建后 assets 与 views 文件夹未生成到 dist 目录问题

问题原因

NestJS 默认使用 TypeScript 编译器(tsc)完成构建,tsc 仅会处理转译 .ts 后缀的代码文件,不会主动复制根目录下的静态资源、模板文件到输出目录,因此项目根目录的 assets、views 文件夹默认不会被打包进 dist。

解决方案

修改项目根目录下的 nest-cli.json 配置文件,在 compilerOptions 节点下添加 assets 规则,指定需要复制的静态资源路径即可,示例配置如下:

{
  "$schema": "https://json.schemastore.org/nest-cli",
  "collection": "@nestjs/schematics",
  "sourceRoot": "src",
  "compilerOptions": {
    "deleteOutDir": true,
    "assets": [
      // 匹配assets文件夹下所有内容,保留目录结构输出到dist
      {"include": "../assets/**/*", "outDir": "dist/assets"},
      // 匹配views文件夹下所有模板文件,保留目录结构输出到dist
      {"include": "../views/**/*", "outDir": "dist/views"}
    ]
  }
}

补充说明:

  • 配置中的 ../ 是因为 nest-cli.json 中的路径默认以 sourceRoot 指定的 src 目录为基准,所以需要回退到根目录匹配 assets 和 views 文件夹
  • 如果你的 NestJS 项目使用自定义 Webpack 配置构建,也可以在 Webpack 配置中添加 copy-webpack-plugin 插件,配置规则复制对应文件夹到输出目录,效果一致
  • 配置完成后重新执行 npm run build 即可看到两个文件夹被正常打包到 dist 目录下

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:45:04