@lynx-js/chunk-loading-webpack-plugin-canary 0.2.0 → 0.2.1-canary-20250506-2c77005a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @lynx-js/chunk-loading-webpack-plugin
2
2
 
3
+ ## 0.2.1-canary-20250506083350-2c77005a52b22cbdddb9caf72d56dfc24cc793ee
4
+
5
+ ### Patch Changes
6
+
7
+ - Add `StartupChunkDependenciesRuntimeModule` to fix `RuntimeGlobals.ensureChunkHandler` not found when using chunk splitting ([#658](https://github.com/lynx-family/lynx-stack/pull/658))
8
+
3
9
  ## 0.2.0
4
10
 
5
11
  ### Minor Changes
@@ -9,11 +15,11 @@
9
15
  - **BREAKING CHANGE**: Remove the deprecated `ChunkLoadingRspackPlugin`, use `ChunkLoadingWebpackPlugin` with `output.chunkLoading: 'lynx'` instead. ([#400](https://github.com/lynx-family/lynx-stack/pull/400))
10
16
 
11
17
  ```js
12
- import { ChunkLoadingWebpackPlugin } from '@lynx-js/chunk-loading-webpack-plugin';
18
+ import { ChunkLoadingWebpackPlugin } from "@lynx-js/chunk-loading-webpack-plugin";
13
19
 
14
20
  export default {
15
21
  output: {
16
- chunkLoading: 'lynx',
22
+ chunkLoading: "lynx",
17
23
  },
18
24
  plugins: [new ChunkLoadingWebpackPlugin()],
19
25
  };
@@ -4,6 +4,7 @@ export declare class ChunkLoadingWebpackPluginImpl {
4
4
  compiler: Compiler;
5
5
  options: ChunkLoadingWebpackPluginOptions;
6
6
  name: string;
7
+ _asyncChunkLoading: boolean;
7
8
  static chunkLoadingValue: string;
8
9
  constructor(compiler: Compiler, options: ChunkLoadingWebpackPluginOptions);
9
10
  }
@@ -4,10 +4,12 @@
4
4
  import { RuntimeGlobals as LynxRuntimeGlobals } from '@lynx-js/webpack-runtime-globals';
5
5
  import { createChunkLoadingRuntimeModule } from './ChunkLoadingRuntimeModule.js';
6
6
  import { createCssChunkLoadingRuntimeModule } from './CssChunkLoadingRuntimeModule.js';
7
+ import { StartupChunkDependenciesPlugin } from './StartupChunkDependenciesPlugin.js';
7
8
  export class ChunkLoadingWebpackPluginImpl {
8
9
  compiler;
9
10
  options;
10
11
  name = 'ChunkLoadingWebpackPlugin';
12
+ _asyncChunkLoading = true;
11
13
  static chunkLoadingValue = 'lynx';
12
14
  constructor(compiler, options) {
13
15
  this.compiler = compiler;
@@ -18,6 +20,10 @@ export class ChunkLoadingWebpackPluginImpl {
18
20
  !== ChunkLoadingWebpackPluginImpl.chunkLoadingValue) {
19
21
  return;
20
22
  }
23
+ new StartupChunkDependenciesPlugin({
24
+ chunkLoading: ChunkLoadingWebpackPluginImpl.chunkLoadingValue,
25
+ asyncChunkLoading: this._asyncChunkLoading,
26
+ }).apply(compiler);
21
27
  // javascript chunk loading
22
28
  compiler.hooks.thisCompilation.tap(this.name, (compilation) => {
23
29
  const ChunkLoadingRuntimeModule = createChunkLoadingRuntimeModule(compiler.webpack);
@@ -1 +1 @@
1
- {"version":3,"file":"ChunkLoadingWebpackPlugin.js","sourceRoot":"","sources":["../src/ChunkLoadingWebpackPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChunkLoadingWebpackPlugin.js","sourceRoot":"","sources":["../src/ChunkLoadingWebpackPlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { Compiler } from 'webpack';
2
+ /**
3
+ * The options for StartupChunkDependenciesPlugin
4
+ */
5
+ interface StartupChunkDependenciesPluginOptions {
6
+ /**
7
+ * Specifies the chunk loading method
8
+ * @defaultValue 'lynx'
9
+ * @remarks Currently only 'lynx' is supported
10
+ */
11
+ chunkLoading: string;
12
+ /**
13
+ * Whether to enable async chunk loading
14
+ * @defaultValue true
15
+ * @remarks Currently only async loading mode is supported
16
+ */
17
+ asyncChunkLoading: boolean;
18
+ }
19
+ export declare class StartupChunkDependenciesPlugin {
20
+ options: StartupChunkDependenciesPluginOptions;
21
+ chunkLoading: string;
22
+ asyncChunkLoading: boolean;
23
+ constructor(options: StartupChunkDependenciesPluginOptions);
24
+ apply(compiler: Compiler): void;
25
+ }
26
+ export {};
@@ -0,0 +1,37 @@
1
+ import { createStartupChunkDependenciesRuntimeModule } from './StartupChunkDependenciesRuntimeModule.js';
2
+ const PLUGIN_NAME = 'StartupChunkDependenciesPlugin';
3
+ export class StartupChunkDependenciesPlugin {
4
+ options;
5
+ chunkLoading;
6
+ asyncChunkLoading;
7
+ constructor(options) {
8
+ this.options = options;
9
+ this.chunkLoading = options.chunkLoading;
10
+ this.asyncChunkLoading = typeof options.asyncChunkLoading === 'boolean'
11
+ ? options.asyncChunkLoading
12
+ : true;
13
+ }
14
+ apply(compiler) {
15
+ const { RuntimeGlobals } = compiler.webpack;
16
+ const StartupChunkDependenciesRuntimeModule = createStartupChunkDependenciesRuntimeModule(compiler.webpack);
17
+ compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
18
+ const globalChunkLoading = compilation.outputOptions.chunkLoading;
19
+ const isEnabledForChunk = (chunk) => {
20
+ const options = chunk.getEntryOptions();
21
+ const chunkLoading = options && options.chunkLoading !== undefined
22
+ ? options.chunkLoading
23
+ : globalChunkLoading;
24
+ return chunkLoading === this.chunkLoading;
25
+ };
26
+ compilation.hooks.additionalTreeRuntimeRequirements.tap(PLUGIN_NAME, (chunk, set) => {
27
+ if (!isEnabledForChunk(chunk))
28
+ return;
29
+ set.add(RuntimeGlobals.startup);
30
+ set.add(RuntimeGlobals.ensureChunk);
31
+ set.add(RuntimeGlobals.ensureChunkIncludeEntries);
32
+ compilation.addRuntimeModule(chunk, new StartupChunkDependenciesRuntimeModule(this.asyncChunkLoading));
33
+ });
34
+ });
35
+ }
36
+ }
37
+ //# sourceMappingURL=StartupChunkDependenciesPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StartupChunkDependenciesPlugin.js","sourceRoot":"","sources":["../src/StartupChunkDependenciesPlugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,2CAA2C,EAAE,MAAM,4CAA4C,CAAC;AAqBzG,MAAM,WAAW,GAAG,gCAAgC,CAAC;AAErD,MAAM,OAAO,8BAA8B;IAKhC;IAJT,YAAY,CAAS;IACrB,iBAAiB,CAAU;IAE3B,YACS,OAA8C;QAA9C,YAAO,GAAP,OAAO,CAAuC;QAErD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,OAAO,OAAO,CAAC,iBAAiB,KAAK,SAAS;YACrE,CAAC,CAAC,OAAO,CAAC,iBAAiB;YAC3B,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,KAAK,CAAC,QAAkB;QACtB,MAAM,EAAE,cAAc,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;QAE5C,MAAM,qCAAqC,GACzC,2CAA2C,CACzC,QAAQ,CAAC,OAAO,CACjB,CAAC;QAEJ,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;YAC9D,MAAM,kBAAkB,GAAG,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC;YAElE,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAW,EAAE;gBAClD,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxC,MAAM,YAAY,GAAG,OAAO,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;oBAChE,CAAC,CAAC,OAAO,CAAC,YAAY;oBACtB,CAAC,CAAC,kBAAkB,CAAC;gBACvB,OAAO,YAAY,KAAK,IAAI,CAAC,YAAY,CAAC;YAC5C,CAAC,CAAC;YAEF,WAAW,CAAC,KAAK,CAAC,iCAAiC,CAAC,GAAG,CACrD,WAAW,EACX,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACb,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;oBAAE,OAAO;gBACtC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;gBAChC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBACpC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC;gBAClD,WAAW,CAAC,gBAAgB,CAC1B,KAAK,EACL,IAAI,qCAAqC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAClE,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ import type { RuntimeModule } from 'webpack';
2
+ type StartupChunkDependenciesRuntimeModule = new (asyncChunkLoading: boolean) => RuntimeModule;
3
+ export declare function createStartupChunkDependenciesRuntimeModule(webpack: typeof import('webpack')): StartupChunkDependenciesRuntimeModule;
4
+ export {};
@@ -0,0 +1,54 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ const runtimeTemplateBasicFunction = (args, body) => {
5
+ return `(${args}) => {\n${body.join('\n')}\n}`;
6
+ };
7
+ export function createStartupChunkDependenciesRuntimeModule(webpack) {
8
+ const { RuntimeGlobals, RuntimeModule, Template } = webpack;
9
+ return class ChunkLoadingRuntimeModule extends RuntimeModule {
10
+ asyncChunkLoading;
11
+ constructor(asyncChunkLoading) {
12
+ super('Lynx startup chunk dependencies', RuntimeModule.STAGE_ATTACH);
13
+ this.asyncChunkLoading = asyncChunkLoading;
14
+ }
15
+ generate() {
16
+ const chunkGraph = this.chunkGraph;
17
+ const chunk = this.chunk;
18
+ const chunkIds = Array.from(chunkGraph.getChunkEntryDependentChunksIterable(chunk)).map(chunk => chunk.id);
19
+ let startupCode;
20
+ if (this.asyncChunkLoading === false) {
21
+ startupCode = chunkIds
22
+ .map(id => `${RuntimeGlobals.ensureChunk}(${JSON.stringify(id)});`)
23
+ .concat('return next();');
24
+ // lazy bundle can't exports Promise
25
+ // TODO: handle Promise in lazy bundle exports to support chunk splitting
26
+ }
27
+ else if (chunkIds.length === 0) {
28
+ startupCode = ['return next();'];
29
+ }
30
+ else if (chunkIds.length === 1) {
31
+ startupCode = [
32
+ `return ${RuntimeGlobals.ensureChunk}(${JSON.stringify(chunkIds[0])}).then(next);`,
33
+ ];
34
+ }
35
+ else if (chunkIds.length > 2) {
36
+ startupCode = [
37
+ `return Promise.all(${JSON.stringify(chunkIds)}.map(${RuntimeGlobals.ensureChunk}, ${RuntimeGlobals.require})).then(next);`,
38
+ ];
39
+ }
40
+ else {
41
+ startupCode = [
42
+ 'return Promise.all([',
43
+ Template.indent(chunkIds.map(id => `${RuntimeGlobals.ensureChunk}(${JSON.stringify(id)})`).join(',\n')),
44
+ ']).then(next);',
45
+ ];
46
+ }
47
+ return Template.asString([
48
+ `var next = ${RuntimeGlobals.startup};`,
49
+ `${RuntimeGlobals.startup} = ${runtimeTemplateBasicFunction('', startupCode)};`,
50
+ ]);
51
+ }
52
+ };
53
+ }
54
+ //# sourceMappingURL=StartupChunkDependenciesRuntimeModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StartupChunkDependenciesRuntimeModule.js","sourceRoot":"","sources":["../src/StartupChunkDependenciesRuntimeModule.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAQ1D,MAAM,4BAA4B,GAAG,CAAC,IAAY,EAAE,IAAc,EAAE,EAAE;IACpE,OAAO,IAAI,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,UAAU,2CAA2C,CACzD,OAAiC;IAEjC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC5D,OAAO,MAAM,yBAA0B,SAAQ,aAAa;QAC1D,iBAAiB,CAAU;QAE3B,YAAY,iBAA0B;YACpC,KAAK,CAAC,iCAAiC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;YACrE,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC7C,CAAC;QAEQ,QAAQ;YACf,MAAM,UAAU,GAAG,IAAI,CAAC,UAAW,CAAC;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC;YAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CACzB,UAAU,CAAC,oCAAoC,CAAC,KAAK,CAAC,CACvD,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,WAAqB,CAAC;YAE1B,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;gBACrC,WAAW,GAAG,QAAQ;qBACnB,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC;qBAClE,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBAC5B,oCAAoC;gBACpC,yEAAyE;YAC3E,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,WAAW,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACnC,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,WAAW,GAAG;oBACZ,UAAU,cAAc,CAAC,WAAW,IAClC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC5B,eAAe;iBAChB,CAAC;YACJ,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,WAAW,GAAG;oBACZ,sBACE,IAAI,CAAC,SAAS,CAAC,QAAQ,CACzB,QAAQ,cAAc,CAAC,WAAW,KAAK,cAAc,CAAC,OAAO,gBAAgB;iBAC9E,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG;oBACZ,sBAAsB;oBACtB,QAAQ,CAAC,MAAM,CACb,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAChB,GAAG,cAAc,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CACvD,CAAC,IAAI,CAAC,KAAK,CAAC,CACd;oBACD,gBAAgB;iBACjB,CAAC;YACJ,CAAC;YAED,OAAO,QAAQ,CAAC,QAAQ,CAAC;gBACvB,cAAc,cAAc,CAAC,OAAO,GAAG;gBACvC,GAAG,cAAc,CAAC,OAAO,MACvB,4BAA4B,CAC1B,EAAE,EACF,WAAW,CAEf,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lynx-js/chunk-loading-webpack-plugin-canary",
3
- "version": "0.2.0",
3
+ "version": "0.2.1-canary-20250506-2c77005a",
4
4
  "private": false,
5
5
  "description": "A webpack plugin to generate chunk loading runtime for Lynx.",
6
6
  "keywords": [
@@ -35,13 +35,13 @@
35
35
  "@lynx-js/webpack-runtime-globals": "npm:@lynx-js/webpack-runtime-globals-canary@0.0.5"
36
36
  },
37
37
  "devDependencies": {
38
- "@microsoft/api-extractor": "7.52.2",
39
- "@rspack/core": "1.3.1",
38
+ "@microsoft/api-extractor": "7.52.7",
39
+ "@rspack/core": "1.3.8",
40
40
  "css-loader": "^7.1.2",
41
41
  "mini-css-extract-plugin": "^2.9.2",
42
- "webpack": "^5.98.0",
43
- "@lynx-js/vitest-setup": "0.0.0",
44
- "@lynx-js/test-tools": "0.0.0"
42
+ "webpack": "^5.99.7",
43
+ "@lynx-js/test-tools": "0.0.0",
44
+ "@lynx-js/vitest-setup": "0.0.0"
45
45
  },
46
46
  "peerDependencies": {
47
47
  "@rspack/core": "^1.3.0"