@esmx/rspack
Rspack 包提供了一套用于创建和配置 Rspack 应用的 API,支持标准应用和 HTML 应用的构建与开发。
安装
使用包管理器安装 @esmx/rspack 开发依赖:
类型导出
BuildTarget
构建目标环境类型,定义了应用程序的构建目标环境:
node: 构建为 Node.js 环境运行的代码client: 构建为浏览器环境运行的代码server: 构建为服务端环境运行的代码
RspackAppConfigContext
Rspack 应用配置上下文接口,提供了在配置钩子函数中可以访问的上下文信息:
esmx: Esmx 框架实例buildTarget: 当前的构建目标(client/server/node)config: Rspack 配置对象options: 应用配置选项
RspackAppChainContext
Rspack 应用链式配置上下文接口,用于 chain 钩子函数:
esmx: Esmx 框架实例buildTarget: 当前的构建目标(client/server/node)chain: rspack-chain 配置对象,可通过链式 API 修改 Rspack 配置options: 应用配置选项
RspackAppOptions
Rspack 应用配置选项接口:
minimize: 是否启用代码压缩,true启用,false禁用,undefined根据环境自动决定(生产环境启用,开发环境禁用)config: 配置钩子函数,在构建开始前调用,可修改 Rspack 编译配置chain: 链式配置钩子函数,使用 rspack-chain 提供更灵活的配置修改方式
RspackHtmlAppOptions
继承自 RspackAppOptions,用于配置 HTML 应用的特定选项:
css: CSS 输出方式,可选'css'(独立文件)或'js'(打包到 JS 中),默认根据环境自动选择loaders: 自定义 loader 配置,可替换默认 loader 实现styleLoader: style-loader 配置选项cssLoader: css-loader 配置选项lessLoader: less-loader 配置选项styleResourcesLoader: 全局样式资源自动注入配置swcLoader: SWC loader 配置选项definePlugin: 全局常量定义target: 构建目标兼容性配置
函数导出
createRspackApp
创建一个标准的 Rspack 应用实例。
参数:
esmx— Esmx 框架实例options— Rspack 应用配置选项
返回值:
- 返回一个
Promise,解析为创建的应用实例
createRspackHtmlApp
创建一个 HTML 类型的 Rspack 应用实例。
参数:
esmx— Esmx 框架实例options— HTML 应用配置选项
返回值:
- 返回一个
Promise,解析为创建的 HTML 应用实例
常量导出
RSPACK_LOADER
Rspack 内置的 loader 标识符映射对象,提供了常用的 loader 名称常量:
builtinSwcLoader: Rspack 内置的 SWC loader,用于处理 TypeScript/JavaScript 文件lightningcssLoader: Rspack 内置的 LightningCSS loader,用于处理 CSS 文件的高性能编译器styleLoader: 用于将 CSS 注入到 DOM 中的 loadercssLoader: 用于解析 CSS 文件和处理 CSS 模块化的 loaderlessLoader: 用于将 Less 文件编译为 CSS 的 loaderstyleResourcesLoader: 用于自动导入全局样式资源(如变量、mixins)的 loaderworkerRspackLoader: 用于处理 Web Worker 文件的 loader
使用这些常量可以在配置中引用内置的 loader,避免手动输入字符串:
src/entry.node.ts
注意事项:
- 这些 loader 已经内置在 Rspack 中,无需额外安装
- 在自定义 loader 配置时,可以使用这些常量来替换默认的 loader 实现
- 某些 loader(如
builtinSwcLoader)有特定的配置选项,请参考相应的配置文档
模块导出
rspack
重导出 @rspack/core 包的所有内容,提供完整的 Rspack 核心功能。