1 | "use strict";
|
2 |
|
3 | const webpack = require(`webpack`);
|
4 |
|
5 | const plugin = (name, optimize) => {
|
6 | let Plugin = (optimize ? webpack.optimize : webpack)[name];
|
7 | return (...args) => new Plugin(...args);
|
8 | };
|
9 |
|
10 | const plugins = {
|
11 | normalModuleReplacement: plugin(`NormalModuleReplacementPlugin`),
|
12 | contextReplacement: plugin(`ContextReplacementPlugin`),
|
13 | ignore: plugin(`IgnorePlugin`),
|
14 | watchIgnore: plugin(`WatchIgnorePlugin`),
|
15 | banner: plugin(`BannerPlugin`),
|
16 | prefetch: plugin(`PrefetchPlugin`),
|
17 | automaticPrefetch: plugin(`AutomaticPrefetchPlugin`),
|
18 | define: plugin(`DefinePlugin`),
|
19 | provide: plugin(`ProvidePlugin`),
|
20 | hotModuleReplacement: plugin(`HotModuleReplacementPlugin`),
|
21 | sourceMapDevTool: plugin(`SourceMapDevToolPlugin`),
|
22 | evalSourceMapDevTool: plugin(`EvalSourceMapDevToolPlugin`),
|
23 | evalDevToolModule: plugin(`EvalDevToolModulePlugin`),
|
24 | cache: plugin(`CachePlugin`),
|
25 | extendedAPI: plugin(`ExtendedAPIPlugin`),
|
26 | externals: plugin(`ExternalsPlugin`),
|
27 | jsonpTemplate: plugin(`JsonpTemplatePlugin`),
|
28 | libraryTemplate: plugin(`LibraryTemplatePlugin`),
|
29 | loaderTarget: plugin(`LoaderTargetPlugin`),
|
30 | memoryOutputFile: plugin(`MemoryOutputFileSystem`),
|
31 | progress: plugin(`ProgressPlugin`),
|
32 | setVarMainTemplate: plugin(`SetVarMainTemplatePlugin`),
|
33 | umdMainTemplate: plugin(`UmdMainTemplatePlugin`),
|
34 | noErrors: plugin(`NoErrorsPlugin`),
|
35 | noEmitOnErrors: plugin(`NoEmitOnErrorsPlugin`),
|
36 | newWatching: plugin(`NewWatchingPlugin`),
|
37 | environment: plugin(`EnvironmentPlugin`),
|
38 | dll: plugin(`DllPlugin`),
|
39 | dllReference: plugin(`DllReferencePlugin`),
|
40 | loaderOptions: plugin(`LoaderOptionsPlugin`),
|
41 | namedModules: plugin(`NamedModulesPlugin`),
|
42 | namedChunks: plugin(`NamedChunksPlugin`),
|
43 | hashedModuleIds: plugin(`HashedModuleIdsPlugin`),
|
44 | moduleFilenameH: plugin(`ModuleFilenameHelpers`),
|
45 | aggressiveMerging: plugin(`AggressiveMergingPlugin`, true),
|
46 | aggressiveSplitting: plugin(`AggressiveSplittingPlugin`, true),
|
47 | splitChunks: plugin(`SplitChunks`, true),
|
48 | chunkModuleIdRange: plugin(`ChunkModuleIdRangePlugin`, true),
|
49 | dedupe: plugin(`DedupePlugin`, true),
|
50 | limitChunkCount: plugin(`LimitChunkCountPlugin`, true),
|
51 | minChunkSize: plugin(`MinChunkSizePlugin`, true),
|
52 | occurrenceOrder: plugin(`OccurrenceOrderPlugin`, true),
|
53 | moduleConcatenation: plugin(`ModuleConcatenationPlugin`, true)
|
54 | };
|
55 | module.exports = plugins;
|
56 |
|
\ | No newline at end of file |