如何配置Nest CLI仅在生产环境构建时使用Webpack
Nest CLI 配置:仅生产环境构建启用Webpack
Nest CLI的命令行参数优先级高于nest-cli.json里的固定配置,靠这个覆盖规则就能实现需求,不用维护多套配置文件。
操作步骤
- 关闭全局默认的Webpack打包
打开项目根目录的nest-cli.json,把顶层的webpack字段设为false,默认构建场景就会走tsc原生编译,开发时的构建速度会快很多。参考配置:
{ "collection": "@nestjs/schematics", "sourceRoot": "src", "compilerOptions": { "deleteOutDir": true }, "webpack": false }
要是你用的是Nest Monorepo结构,注意别在子项目的单独配置里写
webpack: true,不然会覆盖全局的默认设置。
- 给生产构建命令单独开启Webpack
Nest CLI的build命令支持传--webpack参数临时覆盖配置里的开关,直接改package.json里的脚本就行:开发相关的命令不带这个参数,只有生产构建的命令加上参数。参考配置:
{ "scripts": { "start:dev": "nest start --watch", "build": "nest build", "build:prod": "nest build --webpack" } }
如果你生产环境用了自定义Webpack配置,直接把生产构建命令改成nest build --webpack --webpackPath ./webpack.config.prod.js就行,指定生产专属的Webpack配置,完全不影响开发环境的构建流程。
最终效果
配置完之后:
- 本地开发跑
npm run start:dev、日常测试构建跑npm run build的时候,都走tsc快速编译,没有Webpack打包的等待时间 - 只有跑
npm run build:prod打生产包的时候,才会启用Webpack做单文件打包、Tree Shaking这些生产环境需要的优化
内容的提问来源于stack exchange,提问作者noamtm
相关产品推荐
相关产品推荐

