@lynx-js/chunk-loading-webpack-plugin-canary 0.1.7 → 0.2.0-canary-20250402-3ebeabbe
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 +20 -1
- package/lib/ChunkLoadingWebpackPlugin.js +4 -4
- package/lib/ChunkLoadingWebpackPlugin.js.map +1 -1
- package/lib/index.d.ts +0 -2
- package/lib/index.js +1 -8
- package/lib/index.js.map +1 -1
- package/package.json +6 -4
- package/lib/ChunkLoadingRspackPlugin.d.ts +0 -53
- package/lib/ChunkLoadingRspackPlugin.js +0 -115
- package/lib/ChunkLoadingRspackPlugin.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @lynx-js/chunk-loading-webpack-plugin
|
|
2
2
|
|
|
3
|
+
## 0.2.0-canary-20250402072136-3ebeabbeba03afaf111c1c91417cf9f446ac1ef4
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- **BREAKING CHANGE**: Requires `@rspack/core` v1.3.0. ([#400](https://github.com/lynx-family/lynx-stack/pull/400))
|
|
8
|
+
|
|
9
|
+
- **BREAKING CHANGE**: Remove the deprecated `ChunkLoadingRspackPlugin`, use `ChunkLoadingWebpackPlugin` with `output.chunkLoading: 'lynx'` instead. ([#400](https://github.com/lynx-family/lynx-stack/pull/400))
|
|
10
|
+
|
|
11
|
+
```js
|
|
12
|
+
import { ChunkLoadingWebpackPlugin } from "@lynx-js/chunk-loading-webpack-plugin";
|
|
13
|
+
|
|
14
|
+
export default {
|
|
15
|
+
output: {
|
|
16
|
+
chunkLoading: "lynx",
|
|
17
|
+
},
|
|
18
|
+
plugins: [new ChunkLoadingWebpackPlugin()],
|
|
19
|
+
};
|
|
20
|
+
```
|
|
21
|
+
|
|
3
22
|
## 0.1.7
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
|
@@ -40,7 +59,7 @@
|
|
|
40
59
|
|
|
41
60
|
### Patch Changes
|
|
42
61
|
|
|
43
|
-
- 42093cb: refractor: migrate to webpack provided
|
|
62
|
+
- 42093cb: refractor: migrate to webpack provided publicPath runtime module
|
|
44
63
|
|
|
45
64
|
## 0.1.1
|
|
46
65
|
|
|
@@ -21,7 +21,8 @@ export class ChunkLoadingWebpackPluginImpl {
|
|
|
21
21
|
// javascript chunk loading
|
|
22
22
|
compiler.hooks.thisCompilation.tap(this.name, (compilation) => {
|
|
23
23
|
const ChunkLoadingRuntimeModule = createChunkLoadingRuntimeModule(compiler.webpack);
|
|
24
|
-
|
|
24
|
+
// TODO(colinaaa): enable this after https://github.com/web-infra-dev/rspack/issues/9849 is fixed.
|
|
25
|
+
// const onceForChunkSet = new WeakSet<Chunk>();
|
|
25
26
|
const globalChunkLoading = compilation.outputOptions.chunkLoading;
|
|
26
27
|
/**
|
|
27
28
|
* @param {Chunk} chunk chunk
|
|
@@ -35,9 +36,8 @@ export class ChunkLoadingWebpackPluginImpl {
|
|
|
35
36
|
return chunkLoading === ChunkLoadingWebpackPluginImpl.chunkLoadingValue;
|
|
36
37
|
};
|
|
37
38
|
const handler = (chunk, runtimeRequirements) => {
|
|
38
|
-
if (onceForChunkSet.has(chunk))
|
|
39
|
-
|
|
40
|
-
onceForChunkSet.add(chunk);
|
|
39
|
+
// if (onceForChunkSet.has(chunk)) return;
|
|
40
|
+
// onceForChunkSet.add(chunk);
|
|
41
41
|
if (!isEnabledForChunk(chunk))
|
|
42
42
|
return;
|
|
43
43
|
runtimeRequirements.add(RuntimeGlobals.getChunkUpdateScriptFilename);
|
|
@@ -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;AAIvF,MAAM,OAAO,6BAA6B;IAM/B;IACA;IANT,IAAI,GAAG,2BAA2B,CAAC;IAEnC,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC;IAElC,YACS,QAAkB,EAClB,OAAyC;QADzC,aAAQ,GAAR,QAAQ,CAAU;QAClB,YAAO,GAAP,OAAO,CAAkC;QAEhD,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;QAExD,UAAU,CAAC,wBAAwB,CAAC,UAAU,CAC5C,QAAQ,EACR,6BAA6B,CAAC,iBAAiB,CAChD,CAAC;QAEF,IACE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY;gBAC9B,6BAA6B,CAAC,iBAAiB,EACrD,CAAC;YACD,OAAO;QACT,CAAC;QAED,2BAA2B;QAC3B,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;YAC5D,MAAM,yBAAyB,GAAG,+BAA+B,CAC/D,QAAQ,CAAC,OAAO,CACjB,CAAC;YACF,
|
|
1
|
+
{"version":3,"file":"ChunkLoadingWebpackPlugin.js","sourceRoot":"","sources":["../src/ChunkLoadingWebpackPlugin.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// Copyright 2024 The Lynx Authors. All rights reserved.
|
|
2
2
|
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
3
|
// LICENSE file in the root directory of this source tree.
|
|
4
|
-
import { ChunkLoadingRspackPluginImpl } from './ChunkLoadingRspackPlugin.js';
|
|
5
4
|
import { ChunkLoadingWebpackPluginImpl } from './ChunkLoadingWebpackPlugin.js';
|
|
6
5
|
/**
|
|
7
6
|
* The ChunkLoadingWebpackPlugin enables chunk loading for webpack/Rspack in Lynx.
|
|
@@ -55,13 +54,7 @@ export class ChunkLoadingWebpackPlugin {
|
|
|
55
54
|
*/
|
|
56
55
|
apply(compiler) {
|
|
57
56
|
const options = Object.assign({}, ChunkLoadingWebpackPlugin.defaultOptions, this.options);
|
|
58
|
-
|
|
59
|
-
new ChunkLoadingRspackPluginImpl(compiler, options);
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
new ChunkLoadingWebpackPluginImpl(compiler, options);
|
|
63
|
-
}
|
|
57
|
+
new ChunkLoadingWebpackPluginImpl(compiler, options);
|
|
64
58
|
}
|
|
65
59
|
}
|
|
66
|
-
export { ChunkLoadingRspackPlugin } from './ChunkLoadingRspackPlugin.js';
|
|
67
60
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAU1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAU1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAU/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,OAAO,yBAAyB;IAEjB;IADnB,YACmB,UAAqD,EAAE;QAAvD,YAAO,GAAP,OAAO,CAAgD;IACvE,CAAC;IAEJ;;;;OAIG;IACH,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAEnC,EAAE,CAAC,CAAC;IAEN;;;OAGG;IACH,KAAK,CAAC,QAAkB;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,EAAE,EACF,yBAAyB,CAAC,cAAc,EACxC,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,6BAA6B,CAC/B,QAAiD,EACjD,OAAO,CACR,CAAC;IACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lynx-js/chunk-loading-webpack-plugin-canary",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0-canary-20250402-3ebeabbe",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A webpack plugin to generate chunk loading runtime for Lynx.",
|
|
6
6
|
"keywords": [
|
|
@@ -36,14 +36,16 @@
|
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@microsoft/api-extractor": "7.51.1",
|
|
39
|
-
"@rspack/
|
|
39
|
+
"@rspack/cli": "^1.3.0",
|
|
40
|
+
"@rspack/core": "1.3.1",
|
|
40
41
|
"css-loader": "^7.1.2",
|
|
41
42
|
"mini-css-extract-plugin": "^2.9.2",
|
|
42
43
|
"webpack": "^5.98.0",
|
|
43
|
-
"@lynx-js/test-tools": "0.0.0"
|
|
44
|
+
"@lynx-js/test-tools": "0.0.0",
|
|
45
|
+
"@lynx-js/vitest-setup": "0.0.0"
|
|
44
46
|
},
|
|
45
47
|
"peerDependencies": {
|
|
46
|
-
"@rspack/core": "^1.
|
|
48
|
+
"@rspack/core": "^1.3.0"
|
|
47
49
|
},
|
|
48
50
|
"engines": {
|
|
49
51
|
"node": ">=18"
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import type { Compiler } from '@rspack/core';
|
|
2
|
-
/**
|
|
3
|
-
* The options for ChunkLoadingRspackPlugin
|
|
4
|
-
*
|
|
5
|
-
* @public
|
|
6
|
-
*/
|
|
7
|
-
interface ChunkLoadingRspackPluginOptions {
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* @public
|
|
11
|
-
* The ChunkLoadingRspackPlugin enables chunk loading for webpack in Lynx.
|
|
12
|
-
*
|
|
13
|
-
* @remarks
|
|
14
|
-
* Note that this plugin should be used with `output.chunkFormat: 'require'`.
|
|
15
|
-
* See {@link https://github.com/web-infra-dev/rspack/issues/5365 | [Feature Request]: runtimeModule hook support} for details.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
*
|
|
19
|
-
* ```js
|
|
20
|
-
* // rspack.config.js
|
|
21
|
-
* import { ChunkLoadingRspackPlugin } from '@lynx-js/chunk-loading-webpack-plugin'
|
|
22
|
-
* export default {
|
|
23
|
-
* output: {
|
|
24
|
-
* chunkFormat: 'require',
|
|
25
|
-
* },
|
|
26
|
-
* plugins: [new ChunkLoadingRspackPlugin()],
|
|
27
|
-
* }
|
|
28
|
-
* ```
|
|
29
|
-
*
|
|
30
|
-
* @deprecated Use {@link ChunkLoadingWebpackPlugin} instead.
|
|
31
|
-
*/
|
|
32
|
-
declare class ChunkLoadingRspackPlugin {
|
|
33
|
-
private readonly options;
|
|
34
|
-
constructor(options?: Partial<ChunkLoadingRspackPluginOptions>);
|
|
35
|
-
/**
|
|
36
|
-
* `defaultOptions` is the default options that the {@link ChunkLoadingRspackPlugin} uses.
|
|
37
|
-
*
|
|
38
|
-
* @public
|
|
39
|
-
*/
|
|
40
|
-
static defaultOptions: Readonly<Required<ChunkLoadingRspackPluginOptions>>;
|
|
41
|
-
/**
|
|
42
|
-
* The entry point of a webpack plugin.
|
|
43
|
-
* @param compiler - the webpack compiler
|
|
44
|
-
*/
|
|
45
|
-
apply(compiler: Compiler): void;
|
|
46
|
-
}
|
|
47
|
-
export { ChunkLoadingRspackPlugin };
|
|
48
|
-
export type { ChunkLoadingRspackPluginOptions };
|
|
49
|
-
export declare class ChunkLoadingRspackPluginImpl {
|
|
50
|
-
#private;
|
|
51
|
-
name: string;
|
|
52
|
-
constructor(compiler: Compiler, _options: ChunkLoadingRspackPluginOptions);
|
|
53
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
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
|
-
import { RuntimeGlobals } from '@lynx-js/webpack-runtime-globals';
|
|
5
|
-
import { CssRuntimeModule } from './runtime/CssRuntimeModule.js';
|
|
6
|
-
import { getCssChunkObject } from './runtime/helper.js';
|
|
7
|
-
import { JavaScriptRuntimeModule } from './runtime/JavaScriptRuntimeModule.js';
|
|
8
|
-
/**
|
|
9
|
-
* @public
|
|
10
|
-
* The ChunkLoadingRspackPlugin enables chunk loading for webpack in Lynx.
|
|
11
|
-
*
|
|
12
|
-
* @remarks
|
|
13
|
-
* Note that this plugin should be used with `output.chunkFormat: 'require'`.
|
|
14
|
-
* See {@link https://github.com/web-infra-dev/rspack/issues/5365 | [Feature Request]: runtimeModule hook support} for details.
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
*
|
|
18
|
-
* ```js
|
|
19
|
-
* // rspack.config.js
|
|
20
|
-
* import { ChunkLoadingRspackPlugin } from '@lynx-js/chunk-loading-webpack-plugin'
|
|
21
|
-
* export default {
|
|
22
|
-
* output: {
|
|
23
|
-
* chunkFormat: 'require',
|
|
24
|
-
* },
|
|
25
|
-
* plugins: [new ChunkLoadingRspackPlugin()],
|
|
26
|
-
* }
|
|
27
|
-
* ```
|
|
28
|
-
*
|
|
29
|
-
* @deprecated Use {@link ChunkLoadingWebpackPlugin} instead.
|
|
30
|
-
*/
|
|
31
|
-
class ChunkLoadingRspackPlugin {
|
|
32
|
-
options;
|
|
33
|
-
constructor(options = {}) {
|
|
34
|
-
this.options = options;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* `defaultOptions` is the default options that the {@link ChunkLoadingRspackPlugin} uses.
|
|
38
|
-
*
|
|
39
|
-
* @public
|
|
40
|
-
*/
|
|
41
|
-
static defaultOptions = Object.freeze({});
|
|
42
|
-
/**
|
|
43
|
-
* The entry point of a webpack plugin.
|
|
44
|
-
* @param compiler - the webpack compiler
|
|
45
|
-
*/
|
|
46
|
-
apply(compiler) {
|
|
47
|
-
new ChunkLoadingRspackPluginImpl(compiler, Object.assign({}, ChunkLoadingRspackPlugin.defaultOptions, this.options));
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
export { ChunkLoadingRspackPlugin };
|
|
51
|
-
export class ChunkLoadingRspackPluginImpl {
|
|
52
|
-
name = 'ChunkLoadingRspackPlugin';
|
|
53
|
-
constructor(compiler, _options) {
|
|
54
|
-
compiler.hooks.thisCompilation.tap(this.name, (compilation) => {
|
|
55
|
-
compilation.hooks.additionalTreeRuntimeRequirements.tap(this.name, (_, set) => {
|
|
56
|
-
set.add(compiler.webpack.RuntimeGlobals.exports);
|
|
57
|
-
set.add(compiler.webpack.RuntimeGlobals.publicPath);
|
|
58
|
-
});
|
|
59
|
-
compilation.hooks.runtimeRequirementInTree.for(compiler.webpack.RuntimeGlobals.ensureChunkHandlers).tap(this.name, (_, runtimeRequirements) => {
|
|
60
|
-
runtimeRequirements.add(RuntimeGlobals.lynxAsyncChunkIds);
|
|
61
|
-
});
|
|
62
|
-
compilation.hooks.runtimeModule.tap(this.name, (runtimeModule, chunk) => {
|
|
63
|
-
if (runtimeModule.name === 'require_chunk_loading') {
|
|
64
|
-
this.#overrideChunkLoadingRuntimeModule(runtimeModule);
|
|
65
|
-
if (compiler.options.mode === 'development') {
|
|
66
|
-
this.#overrideHMRChunkLoadingRuntimeModule(runtimeModule);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
else if (runtimeModule.name === 'css loading'
|
|
70
|
-
// TODO: support production CSS chunk loading
|
|
71
|
-
&& compiler.options.mode === 'development') {
|
|
72
|
-
this.#overrideCSSChunkLoadingRuntimeModule(compilation, runtimeModule, chunk);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
#overrideChunkLoadingRuntimeModule(runtimeModule) {
|
|
78
|
-
runtimeModule.source.source = Buffer.concat([
|
|
79
|
-
Buffer.from(runtimeModule.source.source),
|
|
80
|
-
Buffer.from('\n'),
|
|
81
|
-
Buffer.from('\n'),
|
|
82
|
-
// withLoading
|
|
83
|
-
Buffer.from(JavaScriptRuntimeModule.generateChunkLoadingRuntime('true')), // TODO: JS_MATCHER
|
|
84
|
-
Buffer.from('\n'),
|
|
85
|
-
// withOnChunkLoad
|
|
86
|
-
Buffer.from(JavaScriptRuntimeModule.generateChunkOnloadRuntime()),
|
|
87
|
-
]);
|
|
88
|
-
}
|
|
89
|
-
#overrideHMRChunkLoadingRuntimeModule(runtimeModule) {
|
|
90
|
-
runtimeModule.source.source = Buffer.concat([
|
|
91
|
-
Buffer.from(runtimeModule.source.source),
|
|
92
|
-
// withHmr
|
|
93
|
-
Buffer.from(JavaScriptRuntimeModule.generateHMRRuntime()),
|
|
94
|
-
// withHmrManifest
|
|
95
|
-
Buffer.from(JavaScriptRuntimeModule.generateHMRManifestRuntime()),
|
|
96
|
-
]);
|
|
97
|
-
}
|
|
98
|
-
#overrideCSSChunkLoadingRuntimeModule(compilation, runtimeModule, chunk) {
|
|
99
|
-
const chunkMap = getCssChunkObject(
|
|
100
|
-
// @ts-expect-error webpack-rspack types
|
|
101
|
-
chunk, compilation);
|
|
102
|
-
runtimeModule.source.source = Buffer.concat([
|
|
103
|
-
Buffer.from('\n'),
|
|
104
|
-
Buffer.from(CssRuntimeModule.generateLoadStyleRuntime()),
|
|
105
|
-
Buffer.from('\n'),
|
|
106
|
-
// withLoading
|
|
107
|
-
Buffer.from(CssRuntimeModule.generateChunkLoadingRuntime(chunkMap, chunk.ids ?? [])),
|
|
108
|
-
Buffer.from('\n'),
|
|
109
|
-
// withHmr
|
|
110
|
-
Buffer.from(CssRuntimeModule.generateHMRLoadChunkRuntime()),
|
|
111
|
-
Buffer.from('\n'),
|
|
112
|
-
]);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
//# sourceMappingURL=ChunkLoadingRspackPlugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChunkLoadingRspackPlugin.js","sourceRoot":"","sources":["../src/ChunkLoadingRspackPlugin.ts"],"names":[],"mappings":"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"}
|