Commit c9c5e751ae6215a99174a6e04981d8b424026b92
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
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
package.json
@@ -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 | } |