Commit c9c5e751ae6215a99174a6e04981d8b424026b92

Authored by huixisheng
1 parent c06e99d0

[change] optimize the webapack config

[change] rename test to examples
Showing 47 changed files with 81 additions and 128 deletions   Show diff stats
build/webpack.base.config.js 0 → 100644
  1 +/**
  2 + * 公共配置
  3 + */
  4 +var webpack = require('webpack');
  5 +
  6 +module.exports = {
  7 + // 加载器
  8 + module: {
  9 + // https://doc.webpack-china.org/guides/migrating/#module-loaders-module-rules
  10 + rules: [
  11 + {
  12 + // https://vue-loader.vuejs.org/en/configurations/extract-css.html
  13 + test: /\.vue$/,
  14 + loader: 'vue-loader',
  15 + options: {
  16 + loaders: {
  17 + css: 'vue-style-loader!css-loader',
  18 + less: 'vue-style-loader!css-loader!less-loader'
  19 + },
  20 + postLoaders: {
  21 + html: 'babel-loader'
  22 + }
  23 + }
  24 + },
  25 + {
  26 + test: /\.js$/,
  27 + loader: 'babel-loader', exclude: /node_modules/
  28 + },
  29 + {
  30 + test: /\.css$/,
  31 + use: [
  32 + 'style-loader',
  33 + 'css-loader',
  34 + 'autoprefixer-loader'
  35 + ]
  36 + },
  37 + {
  38 + test: /\.less$/,
  39 + use: [
  40 + 'style-loader',
  41 + 'css-loader',
  42 + 'less-loader'
  43 + ]
  44 + },
  45 + {
  46 + test: /\.scss$/,
  47 + use: [
  48 + 'style-loader',
  49 + 'css-loader',
  50 + 'sass-loader?sourceMap'
  51 + ]
  52 + },
  53 + { test: /\.(gif|jpg|png|woff|svg|eot|ttf)\??.*$/, loader: 'url-loader?limit=8192'},
  54 + { test: /\.(html|tpl)$/, loader: 'html-loader' }
  55 + ]
  56 + },
  57 + resolve: {
  58 + extensions: ['.js', '.vue']
  59 + }
  60 +};
build/webpack.dev.config.js
@@ -6,109 +6,35 @@ var path = require('path'); @@ -6,109 +6,35 @@ var path = require('path');
6 var webpack = require('webpack'); 6 var webpack = require('webpack');
7 // var ExtractTextPlugin = require('extract-text-webpack-plugin'); 7 // var ExtractTextPlugin = require('extract-text-webpack-plugin');
8 var HtmlWebpackPlugin = require('html-webpack-plugin'); 8 var HtmlWebpackPlugin = require('html-webpack-plugin');
  9 +var merge = require('webpack-merge')
  10 +var webpackBaseConfig = require('./webpack.base.config.js');
9 11
10 -module.exports = { 12 +
  13 +module.exports = merge(webpackBaseConfig, {
11 // 入口 14 // 入口
12 entry: { 15 entry: {
13 - main: './test/main', 16 + main: './examples/main',
14 vendors: ['vue', 'vue-router'] 17 vendors: ['vue', 'vue-router']
15 }, 18 },
16 // 输出 19 // 输出
17 output: { 20 output: {
18 - path: path.join(__dirname, '../test/dist'), 21 + path: path.join(__dirname, '../examples/dist'),
19 publicPath: '', 22 publicPath: '',
20 filename: '[name].js', 23 filename: '[name].js',
21 chunkFilename: '[name].chunk.js' 24 chunkFilename: '[name].chunk.js'
22 }, 25 },
23 - // 加载器  
24 - module: {  
25 - // https://doc.webpack-china.org/guides/migrating/#module-loaders-module-rules  
26 - rules: [  
27 - {  
28 - // https://vue-loader.vuejs.org/en/configurations/extract-css.html  
29 - test: /\.vue$/,  
30 - loader: 'vue-loader',  
31 - options: {  
32 - loaders: {  
33 - css: 'vue-style-loader!css-loader',  
34 - less: 'vue-style-loader!css-loader!less-loader'  
35 - },  
36 - postLoaders: {  
37 - html: 'babel-loader'  
38 - }  
39 - }  
40 - },  
41 - // { test: /\.vue$/, loader: 'vue' },  
42 - // Module build failed: Error: The node API for `babel` has been moved to `babel-core`.  
43 - // https://github.com/babel/babel-loader/blob/master/README.md#the-node-api-for-babel-has-been-moved-to-babel-core  
44 - {  
45 - test: /\.js$/,  
46 - loader: 'babel-loader', exclude: /node_modules/  
47 - },  
48 - {  
49 - test: /\.css$/,  
50 - use: [  
51 - 'style-loader',  
52 - 'css-loader',  
53 - 'autoprefixer-loader'  
54 - ]  
55 - },  
56 - {  
57 - test: /\.less$/,  
58 - use: [  
59 - 'style-loader',  
60 - 'css-loader',  
61 - 'less-loader'  
62 - ]  
63 - // loader: 'style!css!less'  
64 - },  
65 - {  
66 - test: /\.scss$/,  
67 - use: [  
68 - 'style-loader',  
69 - 'css-loader',  
70 - 'sass-loader?sourceMap'  
71 - ]  
72 - // loader: 'style!css!sass?sourceMap'  
73 - },  
74 - { test: /\.(gif|jpg|png|woff|svg|eot|ttf)\??.*$/, loader: 'url-loader?limit=8192'},  
75 - { test: /\.(html|tpl)$/, loader: 'html-loader' }  
76 - ]  
77 - },  
78 - // vue: {  
79 - // loaders: {  
80 - // css: ExtractTextPlugin.extract(  
81 - // "style-loader",  
82 - // "css-loader?sourceMap",  
83 - // {  
84 - // publicPath: "/test/dist/"  
85 - // }  
86 - // ),  
87 - // less: ExtractTextPlugin.extract(  
88 - // 'vue-style-loader',  
89 - // 'css-loader!less-loader'  
90 - // ),  
91 - // js: 'babel'  
92 - // }  
93 - // },  
94 resolve: { 26 resolve: {
95 - // require时省略的扩展名,如:require('module') 不需要module.js  
96 - extensions: ['.js', '.vue'],  
97 alias: { 27 alias: {
98 iview: '../../src/index', 28 iview: '../../src/index',
99 vue: 'vue/dist/vue.js' 29 vue: 'vue/dist/vue.js'
100 } 30 }
101 }, 31 },
102 plugins: [ 32 plugins: [
103 - // new ExtractTextPlugin({ filename: '[name].css', disable: false, allChunks: true }),  
104 - // new ExtractTextPlugin("[name].css",{ allChunks : true,resolve : ['modules'] }), // 提取CSS  
105 - // https://doc.webpack-china.org/plugins/commons-chunk-plugin/  
106 new webpack.optimize.CommonsChunkPlugin({ name: 'vendors', filename: 'vendor.bundle.js' }), 33 new webpack.optimize.CommonsChunkPlugin({ name: 'vendors', filename: 'vendor.bundle.js' }),
107 new HtmlWebpackPlugin({ 34 new HtmlWebpackPlugin({
108 inject: true, 35 inject: true,
109 - filename: path.join(__dirname, '../test/dist/index.html'),  
110 - template: path.join(__dirname, '../test/index.html') // 模版文件 36 + filename: path.join(__dirname, '../examples/dist/index.html'),
  37 + template: path.join(__dirname, '../examples/index.html')
111 }) 38 })
112 - // new webpack.optimize.CommonsChunkPlugin('vendors', 'vendors.js'), // 提取第三方库  
113 ] 39 ]
114 -}; 40 +});
build/webpack.dist.dev.config.js
1 var path = require('path'); 1 var path = require('path');
2 var webpack = require('webpack'); 2 var webpack = require('webpack');
  3 +var merge = require('webpack-merge')
  4 +var webpackBaseConfig = require('./webpack.base.config.js');
3 5
4 -module.exports = { 6 +module.exports = merge(webpackBaseConfig, {
5 entry: { 7 entry: {
6 main: './src/index.js' 8 main: './src/index.js'
7 }, 9 },
@@ -21,26 +23,6 @@ module.exports = { @@ -21,26 +23,6 @@ module.exports = {
21 amd: 'vue' 23 amd: 'vue'
22 } 24 }
23 }, 25 },
24 - resolve: {  
25 - extensions: ['.js', '.vue']  
26 - },  
27 - module: {  
28 - rules: [  
29 - {  
30 - test: /\.vue$/,  
31 - loader: 'vue-loader',  
32 - options: {  
33 - postLoaders: {  
34 - html: 'babel-loader'  
35 - }  
36 - }  
37 - },  
38 - {  
39 - test: /\.js$/,  
40 - loader: 'babel-loader', exclude: /node_modules/  
41 - }  
42 - ]  
43 - },  
44 plugins: [ 26 plugins: [
45 new webpack.DefinePlugin({ 27 new webpack.DefinePlugin({
46 'process.env': { 28 'process.env': {
@@ -48,4 +30,4 @@ module.exports = { @@ -48,4 +30,4 @@ module.exports = {
48 } 30 }
49 }) 31 })
50 ] 32 ]
51 -} 33 +});
build/webpack.dist.prod.config.js
1 var path = require('path'); 1 var path = require('path');
2 var webpack = require('webpack'); 2 var webpack = require('webpack');
  3 +var merge = require('webpack-merge')
  4 +var webpackBaseConfig = require('./webpack.base.config.js');
3 5
4 -module.exports = { 6 +
  7 +
  8 +module.exports = merge(webpackBaseConfig, {
5 entry: { 9 entry: {
6 main: './src/index.js' 10 main: './src/index.js'
7 }, 11 },
@@ -21,26 +25,6 @@ module.exports = { @@ -21,26 +25,6 @@ module.exports = {
21 amd: 'vue' 25 amd: 'vue'
22 } 26 }
23 }, 27 },
24 - resolve: {  
25 - extensions: ['.js', '.vue']  
26 - },  
27 - module: {  
28 - rules: [  
29 - {  
30 - test: /\.vue$/,  
31 - loader: 'vue-loader',  
32 - options: {  
33 - postLoaders: {  
34 - html: 'babel-loader'  
35 - }  
36 - }  
37 - },  
38 - {  
39 - test: /\.js$/,  
40 - loader: 'babel-loader', exclude: /node_modules/  
41 - }  
42 - ]  
43 - },  
44 plugins: [ 28 plugins: [
45 new webpack.DefinePlugin({ 29 new webpack.DefinePlugin({
46 'process.env': { 30 'process.env': {
@@ -53,4 +37,4 @@ module.exports = { @@ -53,4 +37,4 @@ module.exports = {
53 } 37 }
54 }) 38 })
55 ] 39 ]
56 -} 40 +});
test/app.vue renamed to examples/app.vue
test/index.html renamed to examples/index.html
test/main.js renamed to examples/main.js
test/routers/affix.vue renamed to examples/routers/affix.vue
test/routers/alert.vue renamed to examples/routers/alert.vue
test/routers/badge.vue renamed to examples/routers/badge.vue
test/routers/breadcrumb.vue renamed to examples/routers/breadcrumb.vue
test/routers/button.vue renamed to examples/routers/button.vue
test/routers/card.vue renamed to examples/routers/card.vue
test/routers/carousel.vue renamed to examples/routers/carousel.vue
test/routers/cascader.vue renamed to examples/routers/cascader.vue
test/routers/checkbox.vue renamed to examples/routers/checkbox.vue
test/routers/circle.vue renamed to examples/routers/circle.vue
test/routers/collapse.vue renamed to examples/routers/collapse.vue
test/routers/date.vue renamed to examples/routers/date.vue
test/routers/dropdown.vue renamed to examples/routers/dropdown.vue
test/routers/form.vue renamed to examples/routers/form.vue
test/routers/grid.vue renamed to examples/routers/grid.vue
test/routers/input-number.vue renamed to examples/routers/input-number.vue
test/routers/input.vue renamed to examples/routers/input.vue
test/routers/menu.vue renamed to examples/routers/menu.vue
test/routers/message.vue renamed to examples/routers/message.vue
test/routers/more.vue renamed to examples/routers/more.vue
test/routers/notice.vue renamed to examples/routers/notice.vue
test/routers/page.vue renamed to examples/routers/page.vue
test/routers/poptip.vue renamed to examples/routers/poptip.vue
test/routers/progress.vue renamed to examples/routers/progress.vue
test/routers/radio.vue renamed to examples/routers/radio.vue
test/routers/rate.vue renamed to examples/routers/rate.vue
test/routers/select.vue renamed to examples/routers/select.vue
test/routers/slider.vue renamed to examples/routers/slider.vue
test/routers/steps.vue renamed to examples/routers/steps.vue
test/routers/switch.vue renamed to examples/routers/switch.vue
test/routers/table.vue renamed to examples/routers/table.vue
test/routers/tabs.vue renamed to examples/routers/tabs.vue
test/routers/tag.vue renamed to examples/routers/tag.vue
test/routers/timeline.vue renamed to examples/routers/timeline.vue
test/routers/tooltip.vue renamed to examples/routers/tooltip.vue
test/routers/transfer.vue renamed to examples/routers/transfer.vue
test/routers/tree.vue renamed to examples/routers/tree.vue
test/routers/upload.vue renamed to examples/routers/upload.vue
@@ -78,6 +78,7 @@ @@ -78,6 +78,7 @@
78 "vue-style-loader": "^1.0.0", 78 "vue-style-loader": "^1.0.0",
79 "vue-template-compiler": "^2.2.1", 79 "vue-template-compiler": "^2.2.1",
80 "webpack": "^2.2.1", 80 "webpack": "^2.2.1",
81 - "webpack-dev-server": "^2.4.1" 81 + "webpack-dev-server": "^2.4.1",
  82 + "webpack-merge": "^3.0.0"
82 } 83 }
83 } 84 }