配置nest-cli.json将非TS文件打包输出到dist文件夹的问题求助
解决方案
原因排查&修复步骤
- 首先确认你使用的
@nestjs/cli版本不低于8.0.0,低版本cli对assets规则的支持存在缺陷,可执行以下命令升级到最新稳定版:
全局安装:npm install -g @nestjs/cli@latest
项目本地开发依赖安装:npm install @nestjs/cli@latest --save-dev - 修正
nest-cli.json的assets配置,不要使用根目录全局通配符,显式指定模板目录路径和输出路径,避免cli过滤匹配结果:
{ "collection": "@nestjs/schematics", "sourceRoot": "src", "compilerOptions": { "assets": [ { "include": "mail/templates/**/*.hbs", "outDir": "dist/src/mail/templates", "watchAssets": true } ] } }
- 确认你使用Nest官方的编译/启动命令执行项目,
nest build和nest start才会触发assets复制逻辑,直接使用ts-node/tsc命令不会读取nest-cli.json的配置。 - 清理历史缓存后重试:删除项目根目录下的
dist文件夹、node_modules/.cache目录,重新执行nest build验证hbs文件是否正常复制到dist对应路径。
补充说明
如果你的项目是Nest monorepo结构,需要将上述assets配置写在对应子项目的配置块中,而非全局根配置,否则规则不会生效。
内容的提问来源于stack exchange,提问作者De_Jr
相关产品推荐
相关产品推荐

