@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 +8 -2
- package/lib/ChunkLoadingWebpackPlugin.d.ts +1 -0
- package/lib/ChunkLoadingWebpackPlugin.js +6 -0
- package/lib/ChunkLoadingWebpackPlugin.js.map +1 -1
- package/lib/StartupChunkDependenciesPlugin.d.ts +26 -0
- package/lib/StartupChunkDependenciesPlugin.js +37 -0
- package/lib/StartupChunkDependenciesPlugin.js.map +1 -0
- package/lib/StartupChunkDependenciesRuntimeModule.d.ts +4 -0
- package/lib/StartupChunkDependenciesRuntimeModule.js +54 -0
- package/lib/StartupChunkDependenciesRuntimeModule.js.map +1 -0
- package/package.json +6 -6
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
|
|
18
|
+
import { ChunkLoadingWebpackPlugin } from "@lynx-js/chunk-loading-webpack-plugin";
|
|
13
19
|
|
|
14
20
|
export default {
|
|
15
21
|
output: {
|
|
16
|
-
chunkLoading:
|
|
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":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAI1D,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAExF,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,kCAAkC,EAAE,MAAM,mCAAmC,CAAC;
|
|
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.
|
|
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.
|
|
39
|
-
"@rspack/core": "1.3.
|
|
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.
|
|
43
|
-
"@lynx-js/
|
|
44
|
-
"@lynx-js/
|
|
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"
|