@lynx-js/chunk-loading-webpack-plugin-canary 0.4.2 → 0.4.3-canary-20261027-749147c8
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 +17 -0
- package/lib/index.d.ts +5 -20
- package/lib/index.js +4 -19
- package/lib/index.js.map +1 -1
- package/lib/runtime/javascript/hmr-load-chunk.js +22 -3
- package/lib/runtime/javascript/hmr-load-chunk.js.map +1 -1
- package/lib/runtime/javascript/hmr-load-manifest.js +3 -1
- package/lib/runtime/javascript/hmr-load-manifest.js.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @lynx-js/chunk-loading-webpack-plugin
|
|
2
2
|
|
|
3
|
+
## 0.4.3-canary-20261027063858-749147c82c3e0bb06f1e92567a5afec909baf19b
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Add internal HMR loading and update coordination hooks. Allow coordinated updates to refresh cached module factories, serialize application, detect timeouts, preserve runtime hashes on reconnect, and reload once on failure using a valid Native CDP request. ([#4178](https://github.com/lynx-family/lynx-stack/pull/4178))
|
|
8
|
+
|
|
9
|
+
Keep downloaded factories ahead of cached refresh fallbacks across update chunks, regardless of loading order.
|
|
10
|
+
|
|
11
|
+
Allow up to ten seconds for coordinated background application before timeout recovery.
|
|
12
|
+
|
|
13
|
+
Report each hot-update module once per result list, including modules collected earlier without a list.
|
|
14
|
+
- Apply main-thread hot updates to loaded async chunks, keep async definition modules stable when worklets are added or removed, and retain background HMR on hosts without Native bundle loading. Centralize the shared HMR runtime identifiers. ([#4179](https://github.com/lynx-family/lynx-stack/pull/4179))
|
|
15
|
+
|
|
16
|
+
Keep the refresh plugin compatible with the planned `react-webpack-plugin` 0.15 release while preserving its existing peer dependency ranges.
|
|
17
|
+
- Updated dependencies [[`7d498ae`](https://github.com/lynx-family/lynx-stack/commit/7d498aece52a20e77abc19e2a4579333861c11da)]:
|
|
18
|
+
- @lynx-js/webpack-runtime-globals@0.1.0-canary-20261027063858-749147c82c3e0bb06f1e92567a5afec909baf19b
|
|
19
|
+
|
|
3
20
|
## 0.4.2
|
|
4
21
|
|
|
5
22
|
### Patch Changes
|
package/lib/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @packageDocumentation
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* An Rspack plugin to generate chunk loading runtime for Lynx.
|
|
5
5
|
*/
|
|
6
6
|
import type { Compiler } from '@rspack/core';
|
|
7
7
|
/**
|
|
@@ -12,33 +12,18 @@ import type { Compiler } from '@rspack/core';
|
|
|
12
12
|
export interface ChunkLoadingWebpackPluginOptions {
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
|
-
* The ChunkLoadingWebpackPlugin enables chunk loading for
|
|
15
|
+
* The ChunkLoadingWebpackPlugin enables chunk loading for Rspack in Lynx.
|
|
16
|
+
* It only takes effect when `output.chunkLoading` is `'lynx'`.
|
|
16
17
|
*
|
|
17
18
|
* @example
|
|
18
19
|
*
|
|
19
|
-
* - Use with Rspack.
|
|
20
|
-
*
|
|
21
20
|
* ```js
|
|
22
21
|
* // rspack.config.js
|
|
23
22
|
* import { ChunkLoadingWebpackPlugin } from '@lynx-js/chunk-loading-webpack-plugin'
|
|
24
23
|
* export default {
|
|
25
24
|
* output: {
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* plugins: [new ChunkLoadingWebpackPlugin()],
|
|
29
|
-
* }
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* @example
|
|
33
|
-
*
|
|
34
|
-
* - Use with Webpack.
|
|
35
|
-
*
|
|
36
|
-
* ```js
|
|
37
|
-
* // webpack.config.js
|
|
38
|
-
* import { ChunkLoadingWebpackPlugin } from '@lynx-js/chunk-loading-webpack-plugin'
|
|
39
|
-
* export default {
|
|
40
|
-
* output: {
|
|
41
|
-
* chunkFormat: 'lynx',
|
|
25
|
+
* chunkLoading: 'lynx',
|
|
26
|
+
* chunkFormat: 'commonjs',
|
|
42
27
|
* },
|
|
43
28
|
* plugins: [new ChunkLoadingWebpackPlugin()],
|
|
44
29
|
* }
|
package/lib/index.js
CHANGED
|
@@ -3,33 +3,18 @@
|
|
|
3
3
|
// LICENSE file in the root directory of this source tree.
|
|
4
4
|
import { ChunkLoadingWebpackPluginImpl } from './ChunkLoadingWebpackPlugin.js';
|
|
5
5
|
/**
|
|
6
|
-
* The ChunkLoadingWebpackPlugin enables chunk loading for
|
|
6
|
+
* The ChunkLoadingWebpackPlugin enables chunk loading for Rspack in Lynx.
|
|
7
|
+
* It only takes effect when `output.chunkLoading` is `'lynx'`.
|
|
7
8
|
*
|
|
8
9
|
* @example
|
|
9
10
|
*
|
|
10
|
-
* - Use with Rspack.
|
|
11
|
-
*
|
|
12
11
|
* ```js
|
|
13
12
|
* // rspack.config.js
|
|
14
13
|
* import { ChunkLoadingWebpackPlugin } from '@lynx-js/chunk-loading-webpack-plugin'
|
|
15
14
|
* export default {
|
|
16
15
|
* output: {
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* plugins: [new ChunkLoadingWebpackPlugin()],
|
|
20
|
-
* }
|
|
21
|
-
* ```
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
*
|
|
25
|
-
* - Use with Webpack.
|
|
26
|
-
*
|
|
27
|
-
* ```js
|
|
28
|
-
* // webpack.config.js
|
|
29
|
-
* import { ChunkLoadingWebpackPlugin } from '@lynx-js/chunk-loading-webpack-plugin'
|
|
30
|
-
* export default {
|
|
31
|
-
* output: {
|
|
32
|
-
* chunkFormat: 'lynx',
|
|
16
|
+
* chunkLoading: 'lynx',
|
|
17
|
+
* chunkFormat: 'commonjs',
|
|
33
18
|
* },
|
|
34
19
|
* plugins: [new ChunkLoadingWebpackPlugin()],
|
|
35
20
|
* }
|
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,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAU/E
|
|
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;;;;;;;;;;;;;;;;;;;GAmBG;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,QAAsD,EACtD,OAAO,CACR,CAAC;IACJ,CAAC"}
|
|
@@ -10,8 +10,10 @@
|
|
|
10
10
|
/* istanbul ignore file */
|
|
11
11
|
export default function () {
|
|
12
12
|
function loadUpdateChunk(chunkId, updatedModulesList) {
|
|
13
|
+
var load = $RuntimeGlobals_lynxHMRLoad$
|
|
14
|
+
|| lynx.requireModuleAsync.bind(lynx);
|
|
13
15
|
return new Promise((resolve, reject) => {
|
|
14
|
-
|
|
16
|
+
load($RuntimeGlobals_publicPath$
|
|
15
17
|
+ $RuntimeGlobals_getChunkUpdateScriptFilename$(chunkId), (err, update) => {
|
|
16
18
|
if (err) {
|
|
17
19
|
reject(err);
|
|
@@ -21,11 +23,28 @@ export default function () {
|
|
|
21
23
|
var runtime = update.runtime;
|
|
22
24
|
for (var moduleId in updatedModules) {
|
|
23
25
|
if ($RuntimeGlobals_hasOwnProperty$(updatedModules, moduleId)) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
if (updatedModulesList
|
|
27
|
+
&& updatedModulesList.indexOf(moduleId) === -1)
|
|
26
28
|
updatedModulesList.push(moduleId);
|
|
29
|
+
currentUpdate[moduleId] = updatedModules[moduleId];
|
|
27
30
|
}
|
|
28
31
|
}
|
|
32
|
+
// Owners unchanged on BTS still need fresh worklet contexts. Cached
|
|
33
|
+
// factories are only fallbacks; any downloaded factory takes priority
|
|
34
|
+
// regardless of which update chunk finishes loading first.
|
|
35
|
+
(update.lynxRefreshModules || []).forEach(function (moduleId) {
|
|
36
|
+
// Match the string keys used by downloaded module factories.
|
|
37
|
+
moduleId = String(moduleId);
|
|
38
|
+
if (__webpack_require__.c[moduleId]
|
|
39
|
+
&& currentUpdate[moduleId] !== false) {
|
|
40
|
+
if (!$RuntimeGlobals_hasOwnProperty$(currentUpdate, moduleId)) {
|
|
41
|
+
currentUpdate[moduleId] = __webpack_require__.m[moduleId];
|
|
42
|
+
}
|
|
43
|
+
if (updatedModulesList
|
|
44
|
+
&& updatedModulesList.indexOf(moduleId) === -1)
|
|
45
|
+
updatedModulesList.push(moduleId);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
29
48
|
if (runtime)
|
|
30
49
|
currentUpdateRuntime.push(runtime);
|
|
31
50
|
resolve();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmr-load-chunk.js","sourceRoot":"","sources":["../../../src/runtime/javascript/hmr-load-chunk.js"],"names":[],"mappings":"AAAA;;;;EAIE;AACF,cAAc;AACd,0DAA0D;AAC1D,yEAAyE;AACzE,gDAAgD;AAChD,0BAA0B;AAE1B,MAAM,CAAC,OAAO;IACZ,SAAS,eAAe,CAAC,OAAO,EAAE,kBAAkB;QAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,
|
|
1
|
+
{"version":3,"file":"hmr-load-chunk.js","sourceRoot":"","sources":["../../../src/runtime/javascript/hmr-load-chunk.js"],"names":[],"mappings":"AAAA;;;;EAIE;AACF,cAAc;AACd,0DAA0D;AAC1D,yEAAyE;AACzE,gDAAgD;AAChD,0BAA0B;AAE1B,MAAM,CAAC,OAAO;IACZ,SAAS,eAAe,CAAC,OAAO,EAAE,kBAAkB;QAClD,IAAI,IAAI,GAAG,4BAA4B;eAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CACF,2BAA2B;kBACvB,6CAA6C,CAAC,OAAO,CAAC,EAC1D,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBACd,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,CAAC,CAAC;oBACZ,OAAO;gBACT,CAAC;gBAED,IAAI,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC;gBACpC,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC7B,KAAK,IAAI,QAAQ,IAAI,cAAc,EAAE,CAAC;oBACpC,IAAI,+BAA+B,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC;wBAC9D,IACE,kBAAkB;+BACf,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;4BAC9C,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACpC,aAAa,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;oBACrD,CAAC;gBACH,CAAC;gBACD,oEAAoE;gBACpE,sEAAsE;gBACtE,2DAA2D;gBAC3D,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,QAAQ;oBACzD,6DAA6D;oBAC7D,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC5B,IACE,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC;2BAC5B,aAAa,CAAC,QAAQ,CAAC,KAAK,KAAK,EACpC,CAAC;wBACD,IAAI,CAAC,+BAA+B,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC;4BAC9D,aAAa,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;wBAC5D,CAAC;wBACD,IACE,kBAAkB;+BACf,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;4BAC9C,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACtC,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,IAAI,OAAO;oBAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChD,OAAO,EAAE,CAAC;YACZ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
/* istanbul ignore file */
|
|
11
11
|
export default function () {
|
|
12
12
|
$RuntimeGlobals_hmrDownloadManifest$ = function () {
|
|
13
|
-
|
|
13
|
+
var load = $RuntimeGlobals_lynxHMRLoad$
|
|
14
|
+
|| lynx.requireModuleAsync.bind(lynx);
|
|
15
|
+
return new Promise((resolve, reject) => load($RuntimeGlobals_publicPath$
|
|
14
16
|
+ $RuntimeGlobals_getUpdateManifestFilename$(), (err, ret) => {
|
|
15
17
|
if (err)
|
|
16
18
|
return reject(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmr-load-manifest.js","sourceRoot":"","sources":["../../../src/runtime/javascript/hmr-load-manifest.js"],"names":[],"mappings":"AAAA;;;;EAIE;AACF,cAAc;AACd,0DAA0D;AAC1D,yEAAyE;AACzE,gDAAgD;AAChD,0BAA0B;AAE1B,MAAM,CAAC,OAAO;IACZ,oCAAoC,GAAG;QACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACrC,IAAI,
|
|
1
|
+
{"version":3,"file":"hmr-load-manifest.js","sourceRoot":"","sources":["../../../src/runtime/javascript/hmr-load-manifest.js"],"names":[],"mappings":"AAAA;;;;EAIE;AACF,cAAc;AACd,0DAA0D;AAC1D,yEAAyE;AACzE,gDAAgD;AAChD,0BAA0B;AAE1B,MAAM,CAAC,OAAO;IACZ,oCAAoC,GAAG;QACrC,IAAI,IAAI,GAAG,4BAA4B;eAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACrC,IAAI,CACF,2BAA2B;cACvB,0CAA0C,EAAE,EAChD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,IAAI,GAAG;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CACF,CACF,CAAC,OAAO,CAAC,CAAC,UAAS,GAAG;YACrB,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB;gBAAE,MAAM,GAAG,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,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.4.
|
|
3
|
+
"version": "0.4.3-canary-20261027-749147c8",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A webpack plugin to generate chunk loading runtime for Lynx.",
|
|
6
6
|
"keywords": [
|
|
@@ -32,14 +32,14 @@
|
|
|
32
32
|
"README.md"
|
|
33
33
|
],
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@lynx-js/webpack-runtime-globals": "npm:@lynx-js/webpack-runtime-globals-canary@0.0
|
|
35
|
+
"@lynx-js/webpack-runtime-globals": "npm:@lynx-js/webpack-runtime-globals-canary@0.1.0-canary-20261027-749147c8"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@
|
|
39
|
-
"@
|
|
40
|
-
"@
|
|
41
|
-
"
|
|
42
|
-
"
|
|
38
|
+
"@lynx-js/test-tools": "0.0.0",
|
|
39
|
+
"@microsoft/api-extractor": "7.59.4",
|
|
40
|
+
"@rspack/core": "2.2.7",
|
|
41
|
+
"@rstest/core": "0.12.1",
|
|
42
|
+
"css-loader": "^7.1.4"
|
|
43
43
|
},
|
|
44
44
|
"engines": {
|
|
45
45
|
"node": ">=18"
|