Skip to content

Commit 699a392

Browse files
authored
Merge pull request webpack#6078 from webpack/feature/tapable-upgrade-entry-option-plugin
feat(tapable): upgrade Single|Multi|DynamicEntryPlugin to tapable v1
2 parents 2a04521 + e9270cc commit 699a392

File tree

4 files changed

+33
-16
lines changed

4 files changed

+33
-16
lines changed

lib/DynamicEntryPlugin.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,16 @@ class DynamicEntryPlugin {
1717
}
1818

1919
apply(compiler) {
20-
compiler.plugin("compilation", (compilation, params) => {
20+
compiler.hooks.compilation.tap("DynamicEntryPlugin", (compilation, {
21+
normalModuleFactory
22+
}) => {
2123
const multiModuleFactory = new MultiModuleFactory();
22-
const normalModuleFactory = params.normalModuleFactory;
2324

2425
compilation.dependencyFactories.set(MultiEntryDependency, multiModuleFactory);
2526
compilation.dependencyFactories.set(SingleEntryDependency, normalModuleFactory);
2627
});
2728

28-
compiler.plugin("make", (compilation, callback) => {
29+
compiler.hooks.make.tapAsync("DynamicEntryPlugin", (compilation, callback) => {
2930
const addEntry = (entry, name) => {
3031
const dep = DynamicEntryPlugin.createDependency(entry, name);
3132
return new Promise((resolve, reject) => {

lib/EntryOptionPlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const itemToPlugin = (context, item, name) => {
1717

1818
module.exports = class EntryOptionPlugin {
1919
apply(compiler) {
20-
compiler.plugin("entry-option", (context, entry) => {
20+
compiler.hooks.entryOption.tap("EntryOptionPlugin", (context, entry) => {
2121
if(typeof entry === "string" || Array.isArray(entry)) {
2222
compiler.apply(itemToPlugin(context, entry, "main"));
2323
} else if(typeof entry === "object") {

lib/MultiEntryPlugin.js

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,33 @@ module.exports = class MultiEntryPlugin {
1616
}
1717

1818
apply(compiler) {
19-
compiler.plugin("compilation", (compilation, params) => {
19+
compiler.hooks.compilation.tap("MultiEntryPlugin", (compilation, {
20+
normalModuleFactory
21+
}) => {
2022
const multiModuleFactory = new MultiModuleFactory();
21-
const normalModuleFactory = params.normalModuleFactory;
2223

2324
compilation.dependencyFactories.set(MultiEntryDependency, multiModuleFactory);
2425
compilation.dependencyFactories.set(SingleEntryDependency, normalModuleFactory);
2526
});
26-
compiler.plugin("make", (compilation, callback) => {
27-
const dep = MultiEntryPlugin.createDependency(this.entries, this.name);
28-
compilation.addEntry(this.context, dep, this.name, callback);
27+
28+
compiler.hooks.make.tapAsync("MultiEntryPlugin", (compilation, callback) => {
29+
const {
30+
context,
31+
entries,
32+
name
33+
} = this;
34+
35+
const dep = MultiEntryPlugin.createDependency(entries, name);
36+
compilation.addEntry(context, dep, name, callback);
2937
});
3038
}
3139

3240
static createDependency(entries, name) {
3341
return new MultiEntryDependency(entries.map((e, idx) => {
3442
const dep = new SingleEntryDependency(e);
35-
dep.loc = name + ":" + (100000 + idx);
43+
// Because entrypoints are not dependencies found in an
44+
// existing module, we give it a synthetic id
45+
dep.loc = `${name}:${100000 + idx}`;
3646
return dep;
3747
}), name);
3848
}

lib/SingleEntryPlugin.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,21 @@ class SingleEntryPlugin {
1313
}
1414

1515
apply(compiler) {
16-
compiler.plugin("compilation", (compilation, params) => {
17-
const normalModuleFactory = params.normalModuleFactory;
18-
16+
compiler.hooks.compilation.tap("SingleEntryPlugin", (compilation, {
17+
normalModuleFactory
18+
}) => {
1919
compilation.dependencyFactories.set(SingleEntryDependency, normalModuleFactory);
2020
});
2121

22-
compiler.plugin("make", (compilation, callback) => {
23-
const dep = SingleEntryPlugin.createDependency(this.entry, this.name);
24-
compilation.addEntry(this.context, dep, this.name, callback);
22+
compiler.hooks.make.tapAsync("SingleEntryPlugin", (compilation, callback) => {
23+
const {
24+
entry,
25+
name,
26+
context
27+
} = this;
28+
29+
const dep = SingleEntryPlugin.createDependency(entry, name);
30+
compilation.addEntry(context, dep, name, callback);
2531
});
2632
}
2733

0 commit comments

Comments
 (0)