@@ -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