@@ -36,24 +36,80 @@ function WebpackOptionsDefaulter() {
3636 this . set ( "resolve.fastUnsafe" , [ ] ) ;
3737 this . set ( "resolveLoader.fastUnsafe" , [ ] ) ;
3838
39- this . set ( "resolve.modulesDirectories" , [ "web_modules" , "node_modules" ] ) ;
40- this . set ( "resolveLoader.modulesDirectories" , [ "web_loaders" , "web_modules" , "node_loaders" , "node_modules" ] ) ;
41-
42- this . set ( "resolveLoader.moduleTemplates" , [ "*-webpack-loader" , "*-web-loader" , "*-loader" , "*" ] ) ;
43-
4439 this . set ( "resolve.alias" , { } ) ;
4540 this . set ( "resolveLoader.alias" , { } ) ;
4641
47- this . set ( "resolve.extensions" , [ "" , ".webpack.js" , ".web.js" , ".js" ] ) ;
48- this . set ( "resolveLoader.extensions" , [ "" , ".webpack-loader.js" , ".web-loader.js" , ".loader.js" , ".js" ] ) ;
49-
50- this . set ( "resolve.packageMains" , [ "webpack" , "browser" , "web" , "browserify" , [ "jam" , "main" ] , "main" ] ) ;
51- this . set ( "resolveLoader.packageMains" , [ "webpackLoader" , "webLoader" , "loader" , "main" ] ) ;
52-
53- this . set ( "resolve.packageAlias" , false ) ;
54-
5542 this . set ( "optimize.occurenceOrderPreferEntry" , true ) ;
5643}
5744module . exports = WebpackOptionsDefaulter ;
5845
5946WebpackOptionsDefaulter . prototype = Object . create ( OptionsDefaulter . prototype ) ;
47+
48+ WebpackOptionsDefaulter . prototype . constructor = WebpackOptionsDefaulter ;
49+
50+ WebpackOptionsDefaulter . prototype . process = function ( options ) {
51+ OptionsDefaulter . prototype . process . call ( this , options ) ;
52+
53+ if ( options . resolve . packageAlias === undefined ) {
54+ if ( options . target === "web" || options . target === "webworker" )
55+ options . resolve . packageAlias = "browser" ;
56+ }
57+
58+ function defaultByTarget ( value , web , webworker , node , def ) {
59+ if ( value !== undefined ) return value ;
60+ switch ( options . target ) {
61+ case "web" : return web ;
62+ case "webworker" : return webworker ;
63+ case "node" : case "async-node" : return node ;
64+ default : return def ;
65+ }
66+ }
67+
68+ options . resolve . modulesDirectories = defaultByTarget ( options . resolve . modulesDirectories ,
69+ [ "web_modules" , "node_modules" ] ,
70+ [ "webworker_modules" , "web_modules" , "node_modules" ] ,
71+ [ "node_modules" ] ,
72+ [ "node_modules" ] ) ;
73+
74+ options . resolveLoader . modulesDirectories = defaultByTarget ( options . resolveLoader . modulesDirectories ,
75+ [ "web_loaders" , "web_modules" , "node_loaders" , "node_modules" ] ,
76+ [ "webworker_loaders" , "web_loaders" , "web_modules" , "node_loaders" , "node_modules" ] ,
77+ [ "node_loaders" , "node_modules" ] ,
78+ [ "node_modules" ] ) ;
79+
80+ options . resolve . packageMains = defaultByTarget ( options . resolve . packageMains ,
81+ [ "webpack" , "browser" , "web" , "browserify" , [ "jam" , "main" ] , "main" ] ,
82+ [ "webpackWorker" , "webworker" , "webpack" , "browser" , "web" , "browserify" , [ "jam" , "main" ] , "main" ] ,
83+ [ "webpackNode" , "node" , "main" ] ,
84+ [ "main" ] ) ;
85+
86+ options . resolve . packageAlias = defaultByTarget ( options . resolve . packageAlias ,
87+ "browser" ,
88+ "browser" ,
89+ false ,
90+ false ) ;
91+
92+ options . resolveLoader . packageMains = defaultByTarget ( options . resolveLoader . packageMains ,
93+ [ "webpackLoader" , "webLoader" , "loader" , "main" ] ,
94+ [ "webpackWorkerLoader" , "webworkerLoader" , "webLoader" , "loader" , "main" ] ,
95+ [ "webpackNodeLoader" , "nodeLoader" , "loader" , "main" ] ,
96+ [ "loader" , "main" ] ) ;
97+
98+ options . resolve . extensions = defaultByTarget ( options . resolve . extensions ,
99+ [ "" , ".webpack.js" , ".web.js" , ".js" ] ,
100+ [ "" , ".webpack-worker.js" , ".webworker.js" , ".web.js" , ".js" ] ,
101+ [ "" , ".webpack-node.js" , ".js" , ".node" ] ,
102+ [ "" , ".js" ] ) ;
103+
104+ options . resolveLoader . extensions = defaultByTarget ( options . resolveLoader . extensions ,
105+ [ "" , ".webpack-loader.js" , ".web-loader.js" , ".loader.js" , ".js" ] ,
106+ [ "" , ".webpack-worker-loader.js" , ".webpack-loader.js" , ".webworker-loader.js" , ".web-loader.js" , ".loader.js" , ".js" ] ,
107+ [ "" , ".webpack-node-loader.js" , ".loader.js" , ".js" ] ,
108+ [ "" , ".js" ] ) ;
109+
110+ options . resolveLoader . moduleTemplates = defaultByTarget ( options . resolveLoader . moduleTemplates ,
111+ [ "*-webpack-loader" , "*-web-loader" , "*-loader" , "*" ] ,
112+ [ "*-webpack-worker-loader" , "*-webworker-loader" , "*-web-loader" , "*-loader" , "*" ] ,
113+ [ "*-webpack-node-loader" , "*-node-loader" , "*-loader" , "*" ] ,
114+ [ "*-loader" , "*" ] ) ;
115+ } ;
0 commit comments