From aa3c07218bc06160d5b75b52bb7c730b0804aff5 Mon Sep 17 00:00:00 2001 From: Qingyu Wang <40660121+colinaaa@users.noreply.github.com> Date: Sun, 30 Mar 2025 23:59:26 +0800 Subject: [PATCH 1/3] feat(webpack/chunk-loading)!: `chunkLoading: 'lynx'` for Rspack --- .changeset/bright-loops-walk.md | 5 + .changeset/smooth-maps-check.md | 8 + .../chunk-loading-webpack-plugin/package.json | 3 +- .../src/ChunkLoadingRspackPlugin.ts | 188 ------------------ .../chunk-loading-webpack-plugin/src/index.ts | 17 +- .../development/rspack.config.js | 2 +- .../vitest.config.ts | 1 + pnpm-lock.yaml | 3 + 8 files changed, 26 insertions(+), 201 deletions(-) create mode 100644 .changeset/bright-loops-walk.md create mode 100644 .changeset/smooth-maps-check.md delete mode 100644 packages/webpack/chunk-loading-webpack-plugin/src/ChunkLoadingRspackPlugin.ts diff --git a/.changeset/bright-loops-walk.md b/.changeset/bright-loops-walk.md new file mode 100644 index 0000000000..da6700265a --- /dev/null +++ b/.changeset/bright-loops-walk.md @@ -0,0 +1,5 @@ +--- +"@lynx-js/chunk-loading-webpack-plugin": minor +--- + +**BREAKING CHANGE**: Requires `@rspack/core` v1.3.0. diff --git a/.changeset/smooth-maps-check.md b/.changeset/smooth-maps-check.md new file mode 100644 index 0000000000..4ece16aff4 --- /dev/null +++ b/.changeset/smooth-maps-check.md @@ -0,0 +1,8 @@ +--- +"@lynx-js/chunk-loading-webpack-plugin": minor +--- + +Deprecate `ChunkLoadingRspackPlugin`. + +Now `ChunkLoadingRspackPlugin` is only an alias of `ChunkLoadingWebpackPlugin`. +Use `ChunkLoadingWebpackPlugin` instead. diff --git a/packages/webpack/chunk-loading-webpack-plugin/package.json b/packages/webpack/chunk-loading-webpack-plugin/package.json index b5cae105fe..e5ff03e708 100644 --- a/packages/webpack/chunk-loading-webpack-plugin/package.json +++ b/packages/webpack/chunk-loading-webpack-plugin/package.json @@ -41,6 +41,7 @@ }, "devDependencies": { "@lynx-js/test-tools": "workspace:*", + "@lynx-js/vitest-setup": "workspace:*", "@microsoft/api-extractor": "catalog:", "@rspack/core": "catalog:rspack", "css-loader": "^7.1.2", @@ -48,7 +49,7 @@ "webpack": "^5.98.0" }, "peerDependencies": { - "@rspack/core": "^1.0.0" + "@rspack/core": "^1.3.0" }, "engines": { "node": ">=18" diff --git a/packages/webpack/chunk-loading-webpack-plugin/src/ChunkLoadingRspackPlugin.ts b/packages/webpack/chunk-loading-webpack-plugin/src/ChunkLoadingRspackPlugin.ts deleted file mode 100644 index 6728778ee9..0000000000 --- a/packages/webpack/chunk-loading-webpack-plugin/src/ChunkLoadingRspackPlugin.ts +++ /dev/null @@ -1,188 +0,0 @@ -// Copyright 2024 The Lynx Authors. All rights reserved. -// Licensed under the Apache License Version 2.0 that can be found in the -// LICENSE file in the root directory of this source tree. - -import type { Chunk, Compilation, Compiler } from '@rspack/core'; - -import { RuntimeGlobals } from '@lynx-js/webpack-runtime-globals'; - -import { CssRuntimeModule } from './runtime/CssRuntimeModule.js'; -import { getCssChunkObject } from './runtime/helper.js'; -import { JavaScriptRuntimeModule } from './runtime/JavaScriptRuntimeModule.js'; - -type RuntimeModule = Parameters< - Compilation['hooks']['runtimeModule']['call'] ->[0]; - -/** - * The options for ChunkLoadingRspackPlugin - * - * @public - */ - -// biome-ignore lint/suspicious/noEmptyInterface: As expected. -interface ChunkLoadingRspackPluginOptions {} - -/** - * @public - * The ChunkLoadingRspackPlugin enables chunk loading for webpack in Lynx. - * - * @remarks - * Note that this plugin should be used with `output.chunkFormat: 'require'`. - * See {@link https://github.com/web-infra-dev/rspack/issues/5365 | [Feature Request]: runtimeModule hook support} for details. - * - * @example - * - * ```js - * // rspack.config.js - * import { ChunkLoadingRspackPlugin } from '@lynx-js/chunk-loading-webpack-plugin' - * export default { - * output: { - * chunkFormat: 'require', - * }, - * plugins: [new ChunkLoadingRspackPlugin()], - * } - * ``` - * - * @deprecated Use {@link ChunkLoadingWebpackPlugin} instead. - */ -class ChunkLoadingRspackPlugin { - constructor( - private readonly options: Partial = {}, - ) {} - - /** - * `defaultOptions` is the default options that the {@link ChunkLoadingRspackPlugin} uses. - * - * @public - */ - static defaultOptions = Object.freeze< - Required - >({}); - - /** - * The entry point of a webpack plugin. - * @param compiler - the webpack compiler - */ - apply(compiler: Compiler): void { - new ChunkLoadingRspackPluginImpl( - compiler, - Object.assign( - {}, - ChunkLoadingRspackPlugin.defaultOptions, - this.options, - ), - ); - } -} - -export { ChunkLoadingRspackPlugin }; -export type { ChunkLoadingRspackPluginOptions }; - -export class ChunkLoadingRspackPluginImpl { - name = 'ChunkLoadingRspackPlugin'; - - constructor(compiler: Compiler, _options: ChunkLoadingRspackPluginOptions) { - compiler.hooks.thisCompilation.tap(this.name, (compilation) => { - compilation.hooks.additionalTreeRuntimeRequirements.tap( - this.name, - (_, set) => { - set.add(compiler.webpack.RuntimeGlobals.exports); - set.add(compiler.webpack.RuntimeGlobals.publicPath); - }, - ); - - compilation.hooks.runtimeRequirementInTree.for( - compiler.webpack.RuntimeGlobals.ensureChunkHandlers, - ).tap(this.name, (_, runtimeRequirements) => { - runtimeRequirements.add(RuntimeGlobals.lynxAsyncChunkIds); - }); - - compilation.hooks.runtimeModule.tap(this.name, (runtimeModule, chunk) => { - if ( - runtimeModule.name === 'require_chunk_loading' - ) { - this.#overrideChunkLoadingRuntimeModule(runtimeModule); - if (compiler.options.mode === 'development') { - this.#overrideHMRChunkLoadingRuntimeModule(runtimeModule); - } - } else if ( - runtimeModule.name === 'css loading' - // TODO: support production CSS chunk loading - && compiler.options.mode === 'development' - ) { - this.#overrideCSSChunkLoadingRuntimeModule( - compilation, - runtimeModule, - chunk, - ); - } - }); - }); - } - - #overrideChunkLoadingRuntimeModule( - runtimeModule: RuntimeModule, - ) { - runtimeModule.source!.source = Buffer.concat([ - Buffer.from(runtimeModule.source!.source), - - Buffer.from('\n'), - - Buffer.from('\n'), - // withLoading - Buffer.from(JavaScriptRuntimeModule.generateChunkLoadingRuntime('true')), // TODO: JS_MATCHER - - Buffer.from('\n'), - // withOnChunkLoad - Buffer.from(JavaScriptRuntimeModule.generateChunkOnloadRuntime()), - ]); - } - - #overrideHMRChunkLoadingRuntimeModule( - runtimeModule: RuntimeModule, - ) { - runtimeModule.source!.source = Buffer.concat([ - Buffer.from(runtimeModule.source!.source), - - // withHmr - Buffer.from( - JavaScriptRuntimeModule.generateHMRRuntime(), - ), - - // withHmrManifest - Buffer.from( - JavaScriptRuntimeModule.generateHMRManifestRuntime(), - ), - ]); - } - - #overrideCSSChunkLoadingRuntimeModule( - compilation: Compilation, - runtimeModule: RuntimeModule, - chunk: Chunk, - ) { - const chunkMap = getCssChunkObject( - // @ts-expect-error webpack-rspack types - chunk, - compilation, - ); - runtimeModule.source!.source = Buffer.concat([ - Buffer.from('\n'), - - Buffer.from(CssRuntimeModule.generateLoadStyleRuntime()), - Buffer.from('\n'), - - // withLoading - Buffer.from(CssRuntimeModule.generateChunkLoadingRuntime( - chunkMap, - chunk.ids ?? [], - )), - Buffer.from('\n'), - - // withHmr - Buffer.from(CssRuntimeModule.generateHMRLoadChunkRuntime()), - Buffer.from('\n'), - ]); - } -} diff --git a/packages/webpack/chunk-loading-webpack-plugin/src/index.ts b/packages/webpack/chunk-loading-webpack-plugin/src/index.ts index 370b98506d..8a5f6bac8e 100644 --- a/packages/webpack/chunk-loading-webpack-plugin/src/index.ts +++ b/packages/webpack/chunk-loading-webpack-plugin/src/index.ts @@ -10,7 +10,6 @@ import type { Compiler } from '@rspack/core'; -import { ChunkLoadingRspackPluginImpl } from './ChunkLoadingRspackPlugin.js'; import { ChunkLoadingWebpackPluginImpl } from './ChunkLoadingWebpackPlugin.js'; /** @@ -80,16 +79,12 @@ export class ChunkLoadingWebpackPlugin { ChunkLoadingWebpackPlugin.defaultOptions, this.options, ); - if (compiler.webpack.rspackVersion) { - new ChunkLoadingRspackPluginImpl(compiler, options); - } else { - new ChunkLoadingWebpackPluginImpl( - compiler as unknown as import('webpack').Compiler, - options, - ); - } + new ChunkLoadingWebpackPluginImpl( + compiler as unknown as import('webpack').Compiler, + options, + ); } } -export { ChunkLoadingRspackPlugin } from './ChunkLoadingRspackPlugin.js'; -export type { ChunkLoadingRspackPluginOptions } from './ChunkLoadingRspackPlugin.js'; +export { ChunkLoadingWebpackPlugin as ChunkLoadingRspackPlugin }; +export type { ChunkLoadingWebpackPluginOptions as ChunkLoadingRspackPluginOptions }; diff --git a/packages/webpack/chunk-loading-webpack-plugin/test/cases/chunk-loading/development/rspack.config.js b/packages/webpack/chunk-loading-webpack-plugin/test/cases/chunk-loading/development/rspack.config.js index 1dad54b5ed..07016bccb7 100644 --- a/packages/webpack/chunk-loading-webpack-plugin/test/cases/chunk-loading/development/rspack.config.js +++ b/packages/webpack/chunk-loading-webpack-plugin/test/cases/chunk-loading/development/rspack.config.js @@ -4,7 +4,7 @@ import { ChunkLoadingRspackPlugin } from '../../../../src/index'; export default { mode: 'development', output: { - chunkLoading: 'require', + chunkLoading: 'lynx', chunkFormat: 'commonjs', chunkFilename: '[id].rspack.bundle.cjs', }, diff --git a/packages/webpack/chunk-loading-webpack-plugin/vitest.config.ts b/packages/webpack/chunk-loading-webpack-plugin/vitest.config.ts index 9887af9a3b..ef2569f31a 100644 --- a/packages/webpack/chunk-loading-webpack-plugin/vitest.config.ts +++ b/packages/webpack/chunk-loading-webpack-plugin/vitest.config.ts @@ -3,5 +3,6 @@ import { defineProject } from 'vitest/config'; export default defineProject({ test: { name: 'webpack/chunk-loading', + setupFiles: ['@lynx-js/vitest-setup/setup.ts'], }, }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9b4c523a09..be4f712a4c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -759,6 +759,9 @@ importers: '@lynx-js/test-tools': specifier: workspace:* version: link:../test-tools + '@lynx-js/vitest-setup': + specifier: workspace:* + version: link:../../tools/vitest-setup '@microsoft/api-extractor': specifier: 'catalog:' version: 7.51.1(@types/node@22.13.5) From b639b827da6774b8f78cff2eea598c122a31d86a Mon Sep 17 00:00:00 2001 From: Qingyu Wang <40660121+colinaaa@users.noreply.github.com> Date: Mon, 31 Mar 2025 16:49:38 +0800 Subject: [PATCH 2/3] fix: test --- .changeset/smooth-maps-check.md | 16 +++++++++++++--- .../core/src/plugins/chunkLoading.plugin.ts | 14 +------------- .../__snapshots__/output.plugin.test.ts.snap | 8 ++++---- .../test/plugins/chunkLoading.plugin.test.ts | 4 ++-- .../etc/chunk-loading-webpack-plugin.api.md | 19 +++++-------------- .../chunk-loading-webpack-plugin/package.json | 1 + .../src/ChunkLoadingWebpackPlugin.ts | 7 ++++--- .../chunk-loading-webpack-plugin/src/index.ts | 3 --- .../development/rspack.config.js | 4 ++-- .../chunk-loading/production/rspack.config.js | 6 +++--- .../runtime-globals/rspack.config.js | 2 +- .../cases/css/development/rspack.config.js | 4 ++-- pnpm-lock.yaml | 3 +++ 13 files changed, 41 insertions(+), 50 deletions(-) diff --git a/.changeset/smooth-maps-check.md b/.changeset/smooth-maps-check.md index 4ece16aff4..001f557b4b 100644 --- a/.changeset/smooth-maps-check.md +++ b/.changeset/smooth-maps-check.md @@ -2,7 +2,17 @@ "@lynx-js/chunk-loading-webpack-plugin": minor --- -Deprecate `ChunkLoadingRspackPlugin`. +**BREAKING CHANGE**: Remove the deprecated `ChunkLoadingRspackPlugin`, use `ChunkLoadingWebpackPlugin` with `output.chunkLoading: 'lynx'` instead. -Now `ChunkLoadingRspackPlugin` is only an alias of `ChunkLoadingWebpackPlugin`. -Use `ChunkLoadingWebpackPlugin` instead. +```js +import { ChunkLoadingWebpackPlugin } from '@lynx-js/chunk-loading-webpack-plugin'; + +export default { + output: { + chunkLoading: 'lynx', + }, + plugins: [ + new ChunkLoadingWebpackPlugin(), + ], +}; +``` diff --git a/packages/rspeedy/core/src/plugins/chunkLoading.plugin.ts b/packages/rspeedy/core/src/plugins/chunkLoading.plugin.ts index 38353ee60b..108e4f4404 100644 --- a/packages/rspeedy/core/src/plugins/chunkLoading.plugin.ts +++ b/packages/rspeedy/core/src/plugins/chunkLoading.plugin.ts @@ -29,24 +29,12 @@ export function pluginChunkLoading(): RsbuildPlugin { .use(ChunkLoadingWebpackPlugin) .end() .output - // Rspack needs `chunkLoading: 'require'` since we use runtimeModule hook - // to override the chunk loading runtime. - .chunkLoading('require') + .chunkLoading('lynx') .chunkFormat('commonjs') .iife(false) .end() } }) - - api.modifyWebpackChain((chain, { environment }) => { - if (isLynx(environment)) { - chain - .output - // For webpack, we directly use `chunkLoading: 'lynx'`. - .chunkLoading('lynx') - .end() - } - }) }, } } diff --git a/packages/rspeedy/core/test/plugins/__snapshots__/output.plugin.test.ts.snap b/packages/rspeedy/core/test/plugins/__snapshots__/output.plugin.test.ts.snap index 7381d9c9cf..df4937c43c 100644 --- a/packages/rspeedy/core/test/plugins/__snapshots__/output.plugin.test.ts.snap +++ b/packages/rspeedy/core/test/plugins/__snapshots__/output.plugin.test.ts.snap @@ -5,7 +5,7 @@ exports[`Plugins - Output > defaults - Production 1`] = ` "assetModuleFilename": "static/assets/[name].[contenthash:8][ext]", "chunkFilename": "static/js/async/[name].[contenthash:8].js", "chunkFormat": "commonjs", - "chunkLoading": "require", + "chunkLoading": "lynx", "filename": "static/js/[name].[contenthash:8].js", "hashFunction": "xxhash64", "iife": false, @@ -21,7 +21,7 @@ exports[`Plugins - Output > defaults 1`] = ` "assetModuleFilename": "static/assets/[name].[contenthash:8][ext]", "chunkFilename": "static/js/async/[name].js", "chunkFormat": "commonjs", - "chunkLoading": "require", + "chunkLoading": "lynx", "filename": "static/js/[name].js", "hashFunction": "xxhash64", "iife": false, @@ -37,7 +37,7 @@ exports[`Plugins - Output > output.filename 1`] = ` "assetModuleFilename": "static/assets/[name].[contenthash:8][ext]", "chunkFilename": "static/js/async/[name].js", "chunkFormat": "commonjs", - "chunkLoading": "require", + "chunkLoading": "lynx", "filename": "static/js/[name].js", "hashFunction": "xxhash64", "iife": false, @@ -53,7 +53,7 @@ exports[`Plugins - Output > output.filename.js 1`] = ` "assetModuleFilename": "static/assets/[name].[contenthash:8][ext]", "chunkFilename": "static/js/async/[name].js", "chunkFormat": "commonjs", - "chunkLoading": "require", + "chunkLoading": "lynx", "filename": "static/js/[name].js", "hashFunction": "xxhash64", "iife": false, diff --git a/packages/rspeedy/core/test/plugins/chunkLoading.plugin.test.ts b/packages/rspeedy/core/test/plugins/chunkLoading.plugin.test.ts index 9441909dd7..dc3d039c3e 100644 --- a/packages/rspeedy/core/test/plugins/chunkLoading.plugin.test.ts +++ b/packages/rspeedy/core/test/plugins/chunkLoading.plugin.test.ts @@ -11,7 +11,7 @@ describe('Plugins - chunkLoading', () => { const config = await rspeedy.unwrapConfig() - expect(config.output?.chunkLoading).toBe('require') + expect(config.output?.chunkLoading).toBe('lynx') expect(config.output?.chunkFormat).toBe('commonjs') expect( config.plugins?.some(plugin => @@ -82,7 +82,7 @@ describe('Plugins - chunkLoading', () => { expect(webConfig?.output?.chunkFormat).not.toBe('commonjs') expect(webConfig?.output?.iife).not.toBe(false) - expect(lynxConfig?.output?.chunkLoading).toBe('require') + expect(lynxConfig?.output?.chunkLoading).toBe('lynx') expect(lynxConfig?.output?.chunkFormat).toBe('commonjs') expect(lynxConfig?.output?.iife).toBe(false) }) diff --git a/packages/webpack/chunk-loading-webpack-plugin/etc/chunk-loading-webpack-plugin.api.md b/packages/webpack/chunk-loading-webpack-plugin/etc/chunk-loading-webpack-plugin.api.md index 6534aa8a51..b465b32d31 100644 --- a/packages/webpack/chunk-loading-webpack-plugin/etc/chunk-loading-webpack-plugin.api.md +++ b/packages/webpack/chunk-loading-webpack-plugin/etc/chunk-loading-webpack-plugin.api.md @@ -3,27 +3,18 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import type { Compiler } from '@rspack/core'; - -// @public @deprecated -export class ChunkLoadingRspackPlugin { - constructor(options?: Partial); - apply(compiler: Compiler): void; - static defaultOptions: Readonly>; -} -// @public -export interface ChunkLoadingRspackPluginOptions { -} +import type { Compiler } from '@rspack/core'; // @public export class ChunkLoadingWebpackPlugin { - constructor(options?: Partial); - apply(compiler: Compiler): void; - static defaultOptions: Readonly>; + constructor(options?: Partial); + apply(compiler: Compiler): void; + static defaultOptions: Readonly>; } // @public export interface ChunkLoadingWebpackPluginOptions { } + ``` diff --git a/packages/webpack/chunk-loading-webpack-plugin/package.json b/packages/webpack/chunk-loading-webpack-plugin/package.json index e5ff03e708..fb137699c8 100644 --- a/packages/webpack/chunk-loading-webpack-plugin/package.json +++ b/packages/webpack/chunk-loading-webpack-plugin/package.json @@ -43,6 +43,7 @@ "@lynx-js/test-tools": "workspace:*", "@lynx-js/vitest-setup": "workspace:*", "@microsoft/api-extractor": "catalog:", + "@rspack/cli": "^1.3.0", "@rspack/core": "catalog:rspack", "css-loader": "^7.1.2", "mini-css-extract-plugin": "^2.9.2", diff --git a/packages/webpack/chunk-loading-webpack-plugin/src/ChunkLoadingWebpackPlugin.ts b/packages/webpack/chunk-loading-webpack-plugin/src/ChunkLoadingWebpackPlugin.ts index 0a53ac082f..9c164e4d2e 100644 --- a/packages/webpack/chunk-loading-webpack-plugin/src/ChunkLoadingWebpackPlugin.ts +++ b/packages/webpack/chunk-loading-webpack-plugin/src/ChunkLoadingWebpackPlugin.ts @@ -39,7 +39,8 @@ export class ChunkLoadingWebpackPluginImpl { const ChunkLoadingRuntimeModule = createChunkLoadingRuntimeModule( compiler.webpack, ); - const onceForChunkSet = new WeakSet(); + // TODO(colinaaa): enable this after https://github.com/web-infra-dev/rspack/issues/9849 is fixed. + // const onceForChunkSet = new WeakSet(); const globalChunkLoading = compilation.outputOptions.chunkLoading; /** @@ -55,8 +56,8 @@ export class ChunkLoadingWebpackPluginImpl { }; const handler = (chunk: Chunk, runtimeRequirements: Set) => { - if (onceForChunkSet.has(chunk)) return; - onceForChunkSet.add(chunk); + // if (onceForChunkSet.has(chunk)) return; + // onceForChunkSet.add(chunk); if (!isEnabledForChunk(chunk)) return; runtimeRequirements.add(RuntimeGlobals.getChunkUpdateScriptFilename); runtimeRequirements.add(RuntimeGlobals.moduleFactoriesAddOnly); diff --git a/packages/webpack/chunk-loading-webpack-plugin/src/index.ts b/packages/webpack/chunk-loading-webpack-plugin/src/index.ts index 8a5f6bac8e..559439b771 100644 --- a/packages/webpack/chunk-loading-webpack-plugin/src/index.ts +++ b/packages/webpack/chunk-loading-webpack-plugin/src/index.ts @@ -85,6 +85,3 @@ export class ChunkLoadingWebpackPlugin { ); } } - -export { ChunkLoadingWebpackPlugin as ChunkLoadingRspackPlugin }; -export type { ChunkLoadingWebpackPluginOptions as ChunkLoadingRspackPluginOptions }; diff --git a/packages/webpack/chunk-loading-webpack-plugin/test/cases/chunk-loading/development/rspack.config.js b/packages/webpack/chunk-loading-webpack-plugin/test/cases/chunk-loading/development/rspack.config.js index 07016bccb7..4408e72581 100644 --- a/packages/webpack/chunk-loading-webpack-plugin/test/cases/chunk-loading/development/rspack.config.js +++ b/packages/webpack/chunk-loading-webpack-plugin/test/cases/chunk-loading/development/rspack.config.js @@ -1,4 +1,4 @@ -import { ChunkLoadingRspackPlugin } from '../../../../src/index'; +import { ChunkLoadingWebpackPlugin } from '../../../../src/index'; /** @type {import('@rspack/core').Configuration} */ export default { @@ -9,7 +9,7 @@ export default { chunkFilename: '[id].rspack.bundle.cjs', }, plugins: [ - new ChunkLoadingRspackPlugin(), + new ChunkLoadingWebpackPlugin(), compiler => { new compiler.webpack.HotModuleReplacementPlugin().apply(compiler); }, diff --git a/packages/webpack/chunk-loading-webpack-plugin/test/cases/chunk-loading/production/rspack.config.js b/packages/webpack/chunk-loading-webpack-plugin/test/cases/chunk-loading/production/rspack.config.js index f60fa4178d..74f808764f 100644 --- a/packages/webpack/chunk-loading-webpack-plugin/test/cases/chunk-loading/production/rspack.config.js +++ b/packages/webpack/chunk-loading-webpack-plugin/test/cases/chunk-loading/production/rspack.config.js @@ -1,10 +1,10 @@ -import { ChunkLoadingRspackPlugin } from '../../../../src/index'; +import { ChunkLoadingWebpackPlugin } from '../../../../src/index'; /** @type {import('@rspack/core').Configuration} */ export default { mode: 'production', output: { - chunkLoading: 'require', + chunkLoading: 'lynx', chunkFormat: 'commonjs', chunkFilename: '[id].rspack.bundle.cjs', }, @@ -12,6 +12,6 @@ export default { chunkIds: 'named', }, plugins: [ - new ChunkLoadingRspackPlugin(), + new ChunkLoadingWebpackPlugin(), ], }; diff --git a/packages/webpack/chunk-loading-webpack-plugin/test/cases/chunk-loading/runtime-globals/rspack.config.js b/packages/webpack/chunk-loading-webpack-plugin/test/cases/chunk-loading/runtime-globals/rspack.config.js index 5075c9c87c..2df216013b 100644 --- a/packages/webpack/chunk-loading-webpack-plugin/test/cases/chunk-loading/runtime-globals/rspack.config.js +++ b/packages/webpack/chunk-loading-webpack-plugin/test/cases/chunk-loading/runtime-globals/rspack.config.js @@ -6,7 +6,7 @@ import { ChunkLoadingWebpackPlugin } from '../../../../src/index'; export default { mode: 'development', output: { - chunkLoading: 'require', + chunkLoading: 'lynx', chunkFormat: 'commonjs', chunkFilename: '[id].rspack.bundle.cjs', }, diff --git a/packages/webpack/chunk-loading-webpack-plugin/test/cases/css/development/rspack.config.js b/packages/webpack/chunk-loading-webpack-plugin/test/cases/css/development/rspack.config.js index 63485e9cc0..b54751a373 100644 --- a/packages/webpack/chunk-loading-webpack-plugin/test/cases/css/development/rspack.config.js +++ b/packages/webpack/chunk-loading-webpack-plugin/test/cases/css/development/rspack.config.js @@ -1,6 +1,6 @@ import rspack from '@rspack/core'; -import { ChunkLoadingRspackPlugin } from '../../../../src/index'; +import { ChunkLoadingWebpackPlugin } from '../../../../src/index'; /** @type {import('@rspack/core').Configuration} */ export default { @@ -25,7 +25,7 @@ export default { css: false, }, plugins: [ - new ChunkLoadingRspackPlugin(), + new ChunkLoadingWebpackPlugin(), compiler => { new compiler.webpack.HotModuleReplacementPlugin().apply(compiler); new rspack.CssExtractRspackPlugin({ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index be4f712a4c..c343f4d961 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -765,6 +765,9 @@ importers: '@microsoft/api-extractor': specifier: 'catalog:' version: 7.51.1(@types/node@22.13.5) + '@rspack/cli': + specifier: ^1.3.0 + version: 1.3.0(@rspack/core@1.3.0(@swc/helpers@0.5.15))(@types/express@4.17.21)(webpack@5.98.0) '@rspack/core': specifier: 1.3.0 version: 1.3.0(@swc/helpers@0.5.15) From 1052a68eae0e66fa0e8315715a8344aefc34ae57 Mon Sep 17 00:00:00 2001 From: Qingyu Wang <40660121+colinaaa@users.noreply.github.com> Date: Mon, 31 Mar 2025 16:51:26 +0800 Subject: [PATCH 3/3] fix: pnpm install --- pnpm-lock.yaml | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index be6fe2b879..6a1e60860a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -767,7 +767,7 @@ importers: version: 7.51.1(@types/node@22.13.5) '@rspack/cli': specifier: ^1.3.0 - version: 1.3.0(@rspack/core@1.3.0(@swc/helpers@0.5.15))(@types/express@4.17.21)(webpack@5.98.0) + version: 1.3.0(@rspack/core@1.3.0-beta.1(@swc/helpers@0.5.15))(@types/express@4.17.21)(webpack@5.98.0) '@rspack/core': specifier: 1.3.0-beta.1 version: 1.3.0-beta.1(@swc/helpers@0.5.15) @@ -2710,6 +2710,16 @@ packages: '@rspack/binding@1.3.0-beta.1': resolution: {integrity: sha512-2jJTKGb1XprTNa/COYRuvd0TOJSiOf6eOtoKj1of5YZA5doIsht8RhI63RahCxoIJZlNv99jwhbtIGVcfi3YAg==} + '@rspack/cli@1.3.0': + resolution: {integrity: sha512-gmyRXYU9K1HClK5sEyXseKzzX/4hOkewt9Gvx3zu+EBG6+P5w8uhX+EHr05rNWL7ZTvGPBw48vTsIdYa5T2TWg==} + hasBin: true + peerDependencies: + '@rspack/core': 1.3.0-beta.1 + '@rspack/tracing': ^1.x + peerDependenciesMeta: + '@rspack/tracing': + optional: true + '@rspack/cli@1.3.0-beta.1': resolution: {integrity: sha512-psd7LYBkbjfTrsZw21sjWscUW2GwUXcuaNDXBMaYrrkDZghUkkno2IHD0ubBvWSiimiRAKX0R5X27aVjNm3ISQ==} hasBin: true @@ -10171,6 +10181,26 @@ snapshots: '@rspack/binding-win32-ia32-msvc': 1.3.0-beta.1 '@rspack/binding-win32-x64-msvc': 1.3.0-beta.1 + '@rspack/cli@1.3.0(@rspack/core@1.3.0-beta.1(@swc/helpers@0.5.15))(@types/express@4.17.21)(webpack@5.98.0)': + dependencies: + '@discoveryjs/json-ext': 0.5.7 + '@rspack/core': 1.3.0-beta.1(@swc/helpers@0.5.15) + '@rspack/dev-server': 1.1.0(@rspack/core@1.3.0-beta.1(@swc/helpers@0.5.15))(@types/express@4.17.21)(webpack@5.98.0) + colorette: 2.0.20 + exit-hook: 4.0.0 + interpret: 3.1.1 + rechoir: 0.8.0 + webpack-bundle-analyzer: 4.10.2 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/express' + - bufferutil + - debug + - supports-color + - utf-8-validate + - webpack + - webpack-cli + '@rspack/cli@1.3.0-beta.1(@rspack/core@1.3.0-beta.1(@swc/helpers@0.5.15))(@types/express@4.17.21)(webpack@5.98.0)': dependencies: '@discoveryjs/json-ext': 0.5.7