Skip to content

Commit 82a0efb

Browse files
test: improve defer the same module (#20479)
1 parent 99614ed commit 82a0efb

File tree

4 files changed

+26
-0
lines changed

4 files changed

+26
-0
lines changed

lib/dependencies/ImportPhase.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,16 @@ const ImportPhase = Object.freeze({
2727

2828
/**
2929
* @typedef {object} ImportPhaseUtils
30+
* @property {(phase: ImportPhaseType) => boolean} isEvaluation true if phase is evaluation
3031
* @property {(phase: ImportPhaseType) => boolean} isDefer true if phase is defer
3132
* @property {(phase: ImportPhaseType) => boolean} isSource true if phase is source
3233
*/
3334

3435
/** @type {ImportPhaseUtils} */
3536
const ImportPhaseUtils = {
37+
isEvaluation(phase) {
38+
return phase === ImportPhase.Evaluation;
39+
},
3640
isDefer(phase) {
3741
return phase === ImportPhase.Defer;
3842
},
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import * as mod1 from "./module.js";
2+
import defer * as mod2 from "./module.js";
3+
4+
it("should generate different runtime code for the same module", () => {
5+
expect(mod1.default).toBe(mod2.default);
6+
expect(mod1).toBe(mod2);
7+
// Test itself + module
8+
expect(Object.keys(__webpack_modules__).length).toBe(2);
9+
});
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default "ok";
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
"use strict";
2+
3+
/** @type {import("../../../../").Configuration} */
4+
module.exports = {
5+
target: [`async-node${process.versions.node.split(".").map(Number)[0]}`],
6+
optimization: {
7+
concatenateModules: false
8+
},
9+
experiments: {
10+
deferImport: true
11+
}
12+
};

0 commit comments

Comments
 (0)