From 8cd4161bd44e88181f5cbc87f3f6bccabedb0685 Mon Sep 17 00:00:00 2001 From: harpsealjs Date: Thu, 15 Jan 2026 15:10:18 +0800 Subject: [PATCH] feat!: remove deprecated cssHeadDataCompression option (#12741) feat: remove deprecated cssHeadDataCompression option --- packages/rspack/src/config/types.ts | 28 ++++++-- website/docs/en/config/module.mdx | 100 ++++++++++++++++++++++++++++ website/docs/zh/config/module.mdx | 100 ++++++++++++++++++++++++++++ 3 files changed, 222 insertions(+), 6 deletions(-) diff --git a/packages/rspack/src/config/types.ts b/packages/rspack/src/config/types.ts index 83f7f68467b1..160c263b2523 100644 --- a/packages/rspack/src/config/types.ts +++ b/packages/rspack/src/config/types.ts @@ -1133,17 +1133,26 @@ export type JavascriptParserOptions = { /** * Control whether renaming of the CommonJS `require` function will be parsed and transformed. - * @default true + * @default false */ requireAlias?: boolean; - // TODO: add docs + /** + * Control whether `require` used as an expression (e.g., `const req = require; req('./module')`) will be parsed. + * @default true + */ requireAsExpression?: boolean; - // TODO: add docs + /** + * Control whether dynamic `require` calls (e.g., `require(variable)`) will be parsed. + * @default true + */ requireDynamic?: boolean; - // TODO: add docs + /** + * Control whether `require.resolve()` calls will be parsed. + * @default true + */ requireResolve?: boolean; /** @@ -1152,7 +1161,10 @@ export type JavascriptParserOptions = { */ commonjs?: JavascriptParserCommonjsOption; - // TODO: add docs + /** + * Control whether dynamic `import()` calls (e.g., `import(variable)`) will be parsed. + * @default true + */ importDynamic?: boolean; /** @@ -1166,7 +1178,11 @@ export type JavascriptParserOptions = { /** Whether to enable JSX parsing */ jsx?: boolean; - /** Whether to enable defer import */ + /** + * Whether to enable defer import. + * This option is controlled by `experiments.deferImport` and should not be set directly. + * @default false + */ deferImport?: boolean; }; diff --git a/website/docs/en/config/module.mdx b/website/docs/en/config/module.mdx index 4b9754251df0..9eb8d3c71f10 100644 --- a/website/docs/en/config/module.mdx +++ b/website/docs/en/config/module.mdx @@ -749,6 +749,106 @@ export default { }; ``` +### module.parser.javascript.requireAlias + + + +Control whether renaming of the CommonJS `require` function will be parsed and transformed. + +When set to `true`, Rspack will parse and transform cases where `require` is assigned to a variable or passed as a parameter (e.g., `const req = require; req('./module')`). + +```js title="rspack.config.mjs" +export default { + module: { + parser: { + javascript: { + requireAlias: true, + }, + }, + }, +}; +``` + +### module.parser.javascript.requireAsExpression + + + +Control whether `require` used as an expression will be parsed. + +When set to `false`, Rspack will not parse `require` when it's used as an expression (e.g., `const req = require; req('./module')`). This can improve build performance if your code doesn't use this pattern. + +```js title="rspack.config.mjs" +export default { + module: { + parser: { + javascript: { + requireAsExpression: false, + }, + }, + }, +}; +``` + +### module.parser.javascript.requireDynamic + + + +Control whether dynamic `require` calls will be parsed. + +When set to `false`, Rspack will not parse dynamic `require` calls where the module path is not a static string (e.g., `require(variable)`). This can improve build performance if your code doesn't use dynamic requires. + +```js title="rspack.config.mjs" +export default { + module: { + parser: { + javascript: { + requireDynamic: false, + }, + }, + }, +}; +``` + +### module.parser.javascript.requireResolve + + + +Control whether `require.resolve()` calls will be parsed. + +When set to `false`, Rspack will not parse `require.resolve()` calls. This can improve build performance if your code doesn't use `require.resolve()`. + +```js title="rspack.config.mjs" +export default { + module: { + parser: { + javascript: { + requireResolve: false, + }, + }, + }, +}; +``` + +### module.parser.javascript.importDynamic + + + +Control whether dynamic `import()` calls will be parsed. + +When set to `false`, Rspack will not parse dynamic `import()` calls where the module path is not a static string (e.g., `import(variable)`). This can improve build performance if your code doesn't use dynamic imports. + +```js title="rspack.config.mjs" +export default { + module: { + parser: { + javascript: { + importDynamic: false, + }, + }, + }, +}; +``` + ### module.parser.javascript.jsx diff --git a/website/docs/zh/config/module.mdx b/website/docs/zh/config/module.mdx index d5027a156364..81ffb07c5824 100644 --- a/website/docs/zh/config/module.mdx +++ b/website/docs/zh/config/module.mdx @@ -749,6 +749,106 @@ export default { }; ``` +### module.parser.javascript.requireAlias + + + +控制是否解析和转换 CommonJS `require` 函数的重命名。 + +当设置为 `true` 时,Rspack 会解析和转换将 `require` 赋值给变量或作为参数传递的情况(例如:`const req = require; req('./module')`)。 + +```js title="rspack.config.mjs" +export default { + module: { + parser: { + javascript: { + requireAlias: true, + }, + }, + }, +}; +``` + +### module.parser.javascript.requireAsExpression + + + +控制是否解析作为表达式使用的 `require`。 + +当设置为 `false` 时,Rspack 不会解析作为表达式使用的 `require`(例如:`const req = require; req('./module')`)。如果代码中不使用这种模式,可以提高构建性能。 + +```js title="rspack.config.mjs" +export default { + module: { + parser: { + javascript: { + requireAsExpression: false, + }, + }, + }, +}; +``` + +### module.parser.javascript.requireDynamic + + + +控制是否解析动态 `require` 调用。 + +当设置为 `false` 时,Rspack 不会解析模块路径不是静态字符串的动态 `require` 调用(例如:`require(variable)`)。如果代码中不使用动态 require,可以提高构建性能。 + +```js title="rspack.config.mjs" +export default { + module: { + parser: { + javascript: { + requireDynamic: false, + }, + }, + }, +}; +``` + +### module.parser.javascript.requireResolve + + + +控制是否解析 `require.resolve()` 调用。 + +当设置为 `false` 时,Rspack 不会解析 `require.resolve()` 调用。如果代码中不使用 `require.resolve()`,可以提高构建性能。 + +```js title="rspack.config.mjs" +export default { + module: { + parser: { + javascript: { + requireResolve: false, + }, + }, + }, +}; +``` + +### module.parser.javascript.importDynamic + + + +控制是否解析动态 `import()` 调用。 + +当设置为 `false` 时,Rspack 不会解析模块路径不是静态字符串的动态 `import()` 调用(例如:`import(variable)`)。如果代码中不使用动态导入,可以提高构建性能。 + +```js title="rspack.config.mjs" +export default { + module: { + parser: { + javascript: { + importDynamic: false, + }, + }, + }, +}; +``` + ### module.parser.javascript.jsx