本文档详细介绍了 Webpack 与 NestJS 应用程序的集成。Webpack 支持打包 JavaScript/TypeScript 应用程序,并提供诸如热模块替换 (HMR) 等功能,以增强开发体验。这种集成可以实现更高效的构建、改进的开发工作流程和优化的生产部署。
有关 Babel 集成的信息,请参阅Babel 集成。
Webpack 集成在 NestJS 中提供了几个关键优势
来源: sample/08-webpack/package.json7-9
要将 Webpack 与 NestJS 结合使用,您需要安装以下依赖项
所需的关键包
| 包 | 目的 |
|---|---|
| webpack | 核心 Webpack 功能 |
| webpack-cli | Webpack 的命令行界面 |
| webpack-node-externals | 从包中排除 node_modules |
| ts-loader | Webpack 的 TypeScript 加载器 |
| start-server-webpack-plugin | HMR 的服务器重启功能 |
来源: sample/08-webpack/package.json31-36
NestJS CLI 通过命令行标志提供对 Webpack 的内置支持
来源: sample/08-webpack/package.json8
热模块替换允许在运行时更新模块,而无需完全重新启动服务器,这通过以下方式显著改善了开发体验:
要在 NestJS 应用程序中启用 HMR,您需要
webpack-hmr.config.js)来源: sample/08-webpack/package.json8
NestJS 允许完全自定义 Webpack 配置。典型的 HMR Webpack 配置文件包括
使用--webpackPath标志指定自定义 Webpack 配置
来源: sample/08-webpack/package.json8
NestJS CLI 通过几个标志提供与 Webpack 的无缝集成
| 标志 | 描述 |
|---|---|
--webpack | 启用 webpack 打包 |
--webpackPath | 指定自定义 Webpack 配置文件 |
--watch | 启用开发监视模式 |
示例
使用 HMR 进行开发:
使用 Webpack 进行生产构建:
来源: sample/08-webpack/package.json8
NestJS 同时提供标准 TypeScript 编译和 Webpack 打包
来源: sample/08-webpack/package.json7-9
在开发中使用 HMR:
build:dev脚本脚本配置:
示例
生产版本:
来源: sample/08-webpack/package.json6-13
HMR 无法正常工作:
构建缓慢:
依赖项问题:
Webpack 集成为 NestJS 应用程序提供了强大的打包功能和开发工作流程改进。通过利用 HMR 等功能,开发人员可以显著提高其生产力,同时仍能为生产环境生成优化的构建。
示例中展示的核心设置演示了通过 CLI 标志和自定义配置文件将 Webpack 集成到 NestJS 中是多么容易,使其成为任何 NestJS 开发工作流程的宝贵补充。
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(86eb46)