Skip to content

Commit e7aba18

Browse files
committed
fix incorrect optimization bailout messages
fixes webpack#6570
1 parent 213226e commit e7aba18

File tree

7 files changed

+28
-19
lines changed

7 files changed

+28
-19
lines changed

lib/optimize/ModuleConcatenationPlugin.js

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -375,21 +375,16 @@ class ModuleConcatenationPlugin {
375375
}
376376
}
377377

378+
// Commit experimental changes
379+
config.set(testConfig);
380+
378381
// Eagerly try to add imports too if possible
379382
for (const imp of this.getImports(module)) {
380-
const problem = this.tryToAdd(
381-
testConfig,
382-
imp,
383-
possibleModules,
384-
failureCache
385-
);
383+
const problem = this.tryToAdd(config, imp, possibleModules, failureCache);
386384
if (problem) {
387-
config.addWarning(module, problem);
385+
config.addWarning(imp, problem);
388386
}
389387
}
390-
391-
// Commit experimental changes
392-
config.set(testConfig);
393388
return null;
394389
}
395390
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import "./concatenated1";
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import { x } from "./concatenated2";
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import { y } from "external";
2+
export var x = y;
Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,29 @@
1-
Hash: 2f9dacd48c09c3072b04
1+
Hash: 123228577e0595ae0a8e
22
Time: Xms
33
Built at: Thu Jan 01 1970 00:00:00 GMT
44
Entrypoint index = index.js
55
Entrypoint entry = entry.js
6-
[0] ./entry.js 32 bytes {0} {1} [built]
6+
[0] ./entry.js 32 bytes {1} {2} [built]
77
ModuleConcatenation bailout: Module is an entry point
8-
[1] ./ref-from-cjs.js 45 bytes {0} [built]
8+
[1] ./ref-from-cjs.js 45 bytes {1} [built]
99
ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./cjs.js (referenced with cjs require)
10-
[2] ./index.js 150 bytes {0} [built]
10+
[2] external "external" 42 bytes {1} [built]
11+
ModuleConcatenation bailout: Module is not an ECMAScript module
12+
[3] ./concatenated.js + 2 modules 116 bytes {0} [built]
13+
ModuleConcatenation bailout: Cannot concat with external "external" (<- Module is not an ECMAScript module)
14+
| ./concatenated.js 26 bytes [built]
15+
| ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./index.js (referenced with import())
16+
| ./concatenated1.js 37 bytes [built]
17+
| ./concatenated2.js 48 bytes [built]
18+
[4] ./index.js 176 bytes {1} [built]
1119
ModuleConcatenation bailout: Module is an entry point
12-
[3] ./cjs.js 59 bytes {0} [built]
20+
[5] ./cjs.js 59 bytes {1} [built]
1321
ModuleConcatenation bailout: Module is not an ECMAScript module
14-
[4] ./eval.js 35 bytes {0} [built]
22+
[6] ./eval.js 35 bytes {1} [built]
1523
ModuleConcatenation bailout: Module uses eval()
16-
[5] ./injected-vars.js 40 bytes {0} [built]
24+
[7] ./injected-vars.js 40 bytes {1} [built]
1725
ModuleConcatenation bailout: Module uses injected variables (__dirname, __filename)
18-
[6] ./module-id.js 26 bytes {0} [built]
26+
[8] ./module-id.js 26 bytes {1} [built]
1927
ModuleConcatenation bailout: Module uses module.id
20-
[7] ./module-loaded.js 30 bytes {0} [built]
28+
[9] ./module-loaded.js 30 bytes {1} [built]
2129
ModuleConcatenation bailout: Module uses module.loaded

test/statsCases/scope-hoisting-bailouts/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ import "./injected-vars";
55
import "./module-id";
66
import "./module-loaded";
77
import "./ref-from-cjs";
8+
import("./concatenated");

test/statsCases/scope-hoisting-bailouts/webpack.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ module.exports = {
88
output: {
99
filename: "[name].js"
1010
},
11+
externals: ["external"],
1112
stats: {
1213
assets: false,
1314
optimizationBailout: true

0 commit comments

Comments
 (0)