close

废弃选项

本页面列出了 Rspack 中已被废弃的配置选项。

这些选项仅为向后兼容而保留,不应在新项目中使用。

builtin:swc-loader 选项

rspackExperiments.collectTypeScriptInfo

用于从 TypeScript 的 AST 中收集信息,以供 Rspack 后续过程进行消费。

Warning

此配置已被废弃。请使用顶层的 collectTypeScriptInfo 替代。

{
  loader: 'builtin:swc-loader',
  options: {
-   rspackExperiments: {
-     collectTypeScriptInfo: {
-       exportedEnum: true,
-     },
-   },
+   collectTypeScriptInfo: {
+     exportedEnum: true,
+   },
  },
}

experiments.topLevelAwait

  • 类型: boolean
  • 默认值: true

开启打包 Top-level await 的支持,Top-level await 仅能在 ModuleTypejavascript/esm 的模块中使用。

默认开启,可通过该配置关闭:

rspack.config.mjs
export default {
  experiments: {
    topLevelAwait: false,
  },
};
Warning

该配置项已经废弃,将在 Rspack v2.0 中被移除。

未来 Top-level await 特性将会始终开启,请从 Rspack 配置中移除此选项。

experiments.lazyCompilation

用于开启懒编译。

Warning

该配置项已经废弃,请使用 lazyCompilation 替代此项。

experiments.layers

  • 类型: boolean
  • 默认值: true

控制是否启用 layer 功能,layer 可以为模块图中以一个模块作为起点的子图中的所有模块添加标识符前缀,用来与其他不同 layer 的模块进行区分,比如:

index.js 模块的 layer 为默认的 null,其 identifier./index.js,我们为其添加 layer = 'client',其 identifier 会变成 (client)/./index.js,这时这两个不同 layer 的 index.js 会被区分为不同的模块,因为其唯一标识 identifier 不一样,最终产物中也会存在这两个模块的产物。

模块默认的 layer 为 null,模块默认会继承其父模块的 layer,你可以通过 entryOptions.layer 为一个入口模块添加 layer,也可以通过 module.rule[].layer 为匹配到的模块添加 layer,同时可以通过 module.rule[].issuerLayer 根据父模块的 layer 进行匹配。

rspack.config.mjs
export default {
  experiments: {
    layers: true,
  },
};
Warning

该配置项已经废弃,layers 特性已始终开启,请从 Rspack 配置项中移除此配置。

experiments.parallelCodeSplitting

  • 类型: boolean
  • 默认值: false

开启后会启用新的多线程 code splitting 算法,如果你的项目中包含较多的动态引用,并且不包含循环 chunk,开启后可以显著降低 code splitting 阶段耗时。

rspack.config.mjs
export default {
  experiments: {
    parallelCodeSplitting: true,
  },
  optimization: {
    removeAvailableModules: true,
  },
};
Warning

该选项已被废弃,在某些包含大量循环 chunk 的边缘情况下会出现严重的性能问题,我们会在未来改进 build_chunk_graph 的性能来替代该选项。

Warning

当启用 parallelCodeSplitting 时,请确保 optimization.removeAvailableModules 也被启用(从 1.3.0 版本起,这已默认启用)。

这保持了与旧版本的 code splitting 算法的一致性,旧版算法在内部强制开启 removeAvailableModules,并且不受到 optimization.removeAvailableModules 控制。

rules[].loaders

用于传递 Loader 包名与其选项的数组。

Warning

该选项已被废弃,请改用 rules[].use

experiments.inlineConst

  • 类型: boolean
  • 默认值: false

用于启用常量导出的跨模块内联优化实验性功能。

Warning

此配置已被废弃,不再需要。内联导出优化现在由 optimization.inlineExports 控制。

experiments.inlineEnum

  • 类型: boolean
  • 默认值: false

用于启用 TypeScript 枚举的内联优化。

Warning

此配置已被废弃,不再需要。枚举内联优化现在由 optimization.inlineExportsbuiltin:swc-loader collectTypeScriptInfo.exportedEnum 控制。

详细示例可参考:inline enum 示例

experiments.lazyBarrel

  • 类型: boolean
  • 默认值: true

用于启用 barrel 文件的惰性编译优化,跳过无副作用的重导出模块中未使用的模块的构建。

Warning

此配置已被废弃,将在 Rspack v2.0 中移除。Lazy barrel 优化已经稳定并默认启用。请从 Rspack 配置中移除此选项。

Tip

Lazy barrel 现在是一个稳定功能,始终处于启用状态。它通过跳过无副作用 barrel 文件中未使用的重导出模块的构建来优化构建性能。

更多详情,请参阅 Lazy barrel 指南

experiments.typeReexportsPresence

  • 类型: boolean
  • 默认值: false

用于启用类型重导出的错误容忍。

Warning

此配置已被废弃,不再需要。类型重导出存在性检查现在由 module.parser.javascript.typeReexportsPresencebuiltin:swc-loader collectTypeScriptInfo.typeExports 控制。

详细示例可参考:type reexports presence 示例

module.parser.javascript.inlineConst

  • 类型: boolean
  • 默认值: false

用于控制是否在解析器中对常量导出执行跨模块内联优化。

Warning

此配置已被废弃。请使用 optimization.inlineExports