Skip to content

Commit 2fdd833

Browse files
committed
prepend plugins instead of append when defined through CLI
closes webpack#4260
1 parent e72a88a commit 2fdd833

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

bin/convert-argv.js

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,10 @@ module.exports = function(yargs, argv, convertOptions) {
283283
}
284284
}
285285

286+
function addPlugin(options, plugin) {
287+
options.plugins.unshift(plugin);
288+
}
289+
286290
ifArgPair("entry", function(name, entry) {
287291
if(typeof options.entry[name] !== "undefined" && options.entry[name] !== null) {
288292
options.entry[name] = [].concat(options.entry[name]).concat(entry);
@@ -330,7 +334,7 @@ module.exports = function(yargs, argv, convertOptions) {
330334
}, function() {
331335
ensureArray(options, "plugins");
332336
var DefinePlugin = require("../lib/DefinePlugin");
333-
options.plugins.push(new DefinePlugin(defineObject));
337+
addPlugin(options, new DefinePlugin(defineObject));
334338
});
335339

336340
ifArg("output-path", function(value) {
@@ -400,13 +404,13 @@ module.exports = function(yargs, argv, convertOptions) {
400404
ifBooleanArg("hot", function() {
401405
ensureArray(options, "plugins");
402406
var HotModuleReplacementPlugin = require("../lib/HotModuleReplacementPlugin");
403-
options.plugins.push(new HotModuleReplacementPlugin());
407+
addPlugin(options, new HotModuleReplacementPlugin());
404408
});
405409

406410
ifBooleanArg("debug", function() {
407411
ensureArray(options, "plugins");
408412
var LoaderOptionsPlugin = require("../lib/LoaderOptionsPlugin");
409-
options.plugins.push(new LoaderOptionsPlugin({
413+
addPlugin(options, new LoaderOptionsPlugin({
410414
debug: true
411415
}));
412416
});
@@ -440,15 +444,15 @@ module.exports = function(yargs, argv, convertOptions) {
440444
ifArg("optimize-max-chunks", function(value) {
441445
ensureArray(options, "plugins");
442446
var LimitChunkCountPlugin = require("../lib/optimize/LimitChunkCountPlugin");
443-
options.plugins.push(new LimitChunkCountPlugin({
447+
addPlugin(options, new LimitChunkCountPlugin({
444448
maxChunks: parseInt(value, 10)
445449
}));
446450
});
447451

448452
ifArg("optimize-min-chunk-size", function(value) {
449453
ensureArray(options, "plugins");
450454
var MinChunkSizePlugin = require("../lib/optimize/MinChunkSizePlugin");
451-
options.plugins.push(new MinChunkSizePlugin({
455+
addPlugin(options, new MinChunkSizePlugin({
452456
minChunkSize: parseInt(value, 10)
453457
}));
454458
});
@@ -457,18 +461,18 @@ module.exports = function(yargs, argv, convertOptions) {
457461
ensureArray(options, "plugins");
458462
var UglifyJsPlugin = require("../lib/optimize/UglifyJsPlugin");
459463
var LoaderOptionsPlugin = require("../lib/LoaderOptionsPlugin");
460-
options.plugins.push(new UglifyJsPlugin({
464+
addPlugin(options, new UglifyJsPlugin({
461465
sourceMap: options.devtool && (options.devtool.indexOf("sourcemap") >= 0 || options.devtool.indexOf("source-map") >= 0)
462466
}));
463-
options.plugins.push(new LoaderOptionsPlugin({
467+
addPlugin(options, new LoaderOptionsPlugin({
464468
minimize: true
465469
}));
466470
});
467471

468472
ifArg("prefetch", function(request) {
469473
ensureArray(options, "plugins");
470474
var PrefetchPlugin = require("../lib/PrefetchPlugin");
471-
options.plugins.push(new PrefetchPlugin(request));
475+
addPlugin(options, new PrefetchPlugin(request));
472476
});
473477

474478
ifArg("provide", function(value) {
@@ -482,12 +486,12 @@ module.exports = function(yargs, argv, convertOptions) {
482486
name = value;
483487
}
484488
var ProvidePlugin = require("../lib/ProvidePlugin");
485-
options.plugins.push(new ProvidePlugin(name, value));
489+
addPlugin(options, new ProvidePlugin(name, value));
486490
});
487491

488492
ifArg("plugin", function(value) {
489493
ensureArray(options, "plugins");
490-
options.plugins.push(loadPlugin(value));
494+
addPlugin(options, loadPlugin(value));
491495
});
492496

493497
mapArgToBoolean("bail");

0 commit comments

Comments
 (0)