@@ -34,7 +34,7 @@ const baseConfig = {
3434 }
3535} ;
3636
37- class Webpack {
37+ class Builder {
3838
3939 /**
4040 * @function createDevConfig
@@ -55,32 +55,32 @@ class Webpack {
5555 // 设置打包规则
5656 const devRules = [ ] ;
5757 // 设置图片解析规则
58- devRules . push ( Webpack . _setImgRule ( false ) ) ;
58+ devRules . push ( Builder . _setImgRule ( false ) ) ;
5959 // 设置CSS解析规则,开发环境不压缩CSS
60- devRules . push ( Webpack . _setCssRule ( false , options . usePx2rem , options . remUnit , options . remPrecision ) ) ;
60+ devRules . push ( Builder . _setCssRule ( false , options . usePx2rem , options . remUnit , options . remPrecision ) ) ;
6161 // 设置JS解析规则
62- devRules . push ( Webpack . _setJsRule ( ) ) ;
62+ devRules . push ( Builder . _setJsRule ( ) ) ;
6363
6464 // 设置打包插件
6565 let devPlugins = [ ] ;
6666 // 设置提取CSS为一个单独的文件的插件
67- devPlugins . push ( Webpack . _setExtractTextPlugin ( false , '' ) ) ;
67+ devPlugins . push ( Builder . _setExtractTextPlugin ( false , '' ) ) ;
6868 // React, react-dom 通过cdn引入
69- devPlugins . push ( Webpack . _setExternalPlugin ( ) ) ;
69+ devPlugins . push ( Builder . _setExternalPlugin ( ) ) ;
7070 // 多实例构建
7171 devPlugins . push ( new HappyPack ( {
7272 loaders : [ 'babel-loader?presets[]=es2015,presets[]=stage-0,presets[]=react' ]
7373 } ) ) ;
7474 // 多页面打包
75- const { newEntry, htmlWebpackPlugins} = Webpack . _setMultiplePage ( devConfig . entry , false , options . inject , false , '' , '' ) ;
75+ const { newEntry, htmlWebpackPlugins} = Builder . _setMultiplePage ( devConfig . entry , false , options . inject , false , '' , '' ) ;
7676 devPlugins = devPlugins . concat ( htmlWebpackPlugins ) ;
7777
7878 devConfig . entry = newEntry ;
79- devConfig . output = Webpack . _setOutput ( false , '' , '/' ) ;
79+ devConfig . output = Builder . _setOutput ( false , '' , '/' ) ;
8080 devConfig . module . rules = devRules ;
8181 devConfig . plugins = devPlugins ;
82- devConfig . devServer = Webpack . _setDevServer ( options . port || 8001 ) ;
83- devConfig . resolve . alias = Webpack . _setAlias ( ) ;
82+ devConfig . devServer = Builder . _setDevServer ( options . port || 8001 ) ;
83+ devConfig . resolve . alias = Builder . _setAlias ( ) ;
8484
8585 return devConfig ;
8686 }
@@ -116,41 +116,41 @@ class Webpack {
116116 // 设置打包规则
117117 const prodRules = [ ] ;
118118 // 设置图片解析规则, 图片需要hash
119- prodRules . push ( Webpack . _setImgRule ( true , assetsPrefix ) ) ;
119+ prodRules . push ( Builder . _setImgRule ( true , assetsPrefix ) ) ;
120120 // 设置CSS解析规则,生产环境默认压缩CSS
121- prodRules . push ( Webpack . _setCssRule ( options . minifyCSS || true , options . usePx2rem , options . remUnit , options . remPrecision ) ) ;
121+ prodRules . push ( Builder . _setCssRule ( options . minifyCSS || true , options . usePx2rem , options . remUnit , options . remPrecision ) ) ;
122122 // 设置JS解析规则
123- prodRules . push ( Webpack . _setJsRule ( ) ) ;
123+ prodRules . push ( Builder . _setJsRule ( ) ) ;
124124
125125 // 设置打包插件
126126 let prodPlugins = [ ] ;
127127 // 清空Public目录插件
128128 prodPlugins . push ( new CleanWebpackPlugin ( [ './public' ] ) ) ;
129129 // 设置提取CSS为一个单独的文件的插件
130- prodPlugins . push ( Webpack . _setExtractTextPlugin ( true , assetsPrefix ) ) ;
130+ prodPlugins . push ( Builder . _setExtractTextPlugin ( true , assetsPrefix ) ) ;
131131 if ( options . minifyJS ) {
132132 // 压缩JS
133133 prodPlugins . push ( new webpack . optimize . UglifyJsPlugin ( ) ) ;
134134 }
135135 // React, react-dom 通过cdn引入
136- prodPlugins . push ( Webpack . _setExternalPlugin ( ) ) ;
136+ prodPlugins . push ( Builder . _setExternalPlugin ( ) ) ;
137137 // Inline 生成出来的css
138138 prodPlugins . push ( new HtmlWebpackInlineSourcePlugin ( ) ) ;
139139 // 多实例构建
140140 prodPlugins . push ( new HappyPack ( {
141141 loaders : [ 'babel-loader?presets[]=es2015,presets[]=stage-0,presets[]=react' ]
142142 } ) ) ;
143143 // 多页面打包, 默认压缩html
144- const { newEntry, htmlWebpackPlugins} = Webpack . _setMultiplePage ( prodConfig . entry , options . minifyHTML || true , options . inject , false , assetsPrefix , htmlPrefix ) ;
144+ const { newEntry, htmlWebpackPlugins} = Builder . _setMultiplePage ( prodConfig . entry , options . minifyHTML || true , options . inject , false , assetsPrefix , htmlPrefix ) ;
145145
146146 prodPlugins = prodPlugins . concat ( htmlWebpackPlugins ) ;
147- prodPlugins . push ( Webpack . _setOffline ( assetsPrefix , htmlPrefix , cdnUrl , serverUrl ) ) ;
147+ prodPlugins . push ( Builder . _setOffline ( assetsPrefix , htmlPrefix , cdnUrl , serverUrl ) ) ;
148148
149149 prodConfig . entry = newEntry ;
150- prodConfig . output = Webpack . _setOutput ( true , assetsPrefix , cdnUrl + '/' ) ;
150+ prodConfig . output = Builder . _setOutput ( true , assetsPrefix , cdnUrl + '/' ) ;
151151 prodConfig . module . rules = prodRules ;
152152 prodConfig . plugins = prodPlugins ;
153- prodConfig . resolve . alias = Webpack . _setAlias ( ) ;
153+ prodConfig . resolve . alias = Builder . _setAlias ( ) ;
154154
155155 return prodConfig ;
156156 }
@@ -229,7 +229,7 @@ class Webpack {
229229 const cssLoaderRule = {
230230 loader : "css-loader" ,
231231 options : {
232- alias : Webpack . _setAlias ( )
232+ alias : Builder . _setAlias ( )
233233 }
234234 } ;
235235 if ( minimize ) {
@@ -443,4 +443,4 @@ class Webpack {
443443 }
444444}
445445
446- module . exports = Webpack ;
446+ module . exports = Builder ;
0 commit comments