Commit 4b47f02693c934d94d66e880ff933e2d628a268d

Authored by Aresn
Committed by GitHub
2 parents ea89b2df 4a7f28fd

Merge pull request #2029 from SergioCrisostomo/resuse-pr1281

Re-use pr1281
build/build-style.js
1   -var gulp = require('gulp');
2   -var cleanCSS = require('gulp-clean-css');
3   -var less = require('gulp-less');
4   -var rename = require('gulp-rename');
5   -var autoprefixer = require('gulp-autoprefixer');
  1 +const gulp = require('gulp');
  2 +const cleanCSS = require('gulp-clean-css');
  3 +const less = require('gulp-less');
  4 +const rename = require('gulp-rename');
  5 +const autoprefixer = require('gulp-autoprefixer');
6 6  
7 7 // 编译less
8 8 gulp.task('css', function () {
... ...
build/locale.js
1   -const readDir = require('fs').readdirSync
2   -const files = readDir('./src/locale/lang')
3   -const entry = {}
  1 +const readDir = require('fs').readdirSync;
  2 +const files = readDir('./src/locale/lang');
  3 +const entry = {};
4 4 files.forEach(file => {
5   - const name = file.split('.')[0]
6   - entry[name] = './src/locale/lang/' + file
7   -})
8   -module.exports = entry
9 5 \ No newline at end of file
  6 + const name = file.split('.')[0];
  7 + entry[name] = './src/locale/lang/' + file;
  8 +});
  9 +module.exports = entry;
... ...
build/webpack.base.config.js
1 1 /**
2 2 * 公共配置
3 3 */
4   -var path = require('path');
  4 +const path = require('path');
  5 +const webpack = require('webpack');
5 6 function resolve (dir) {
6   - return path.join(__dirname, '..', dir)
  7 + return path.join(__dirname, '..', dir);
7 8 }
8 9  
9 10 module.exports = {
... ... @@ -63,5 +64,8 @@ module.exports = {
63 64 'vue': 'vue/dist/vue.esm.js',
64 65 '@': resolve('src')
65 66 }
66   - }
  67 + },
  68 + plugins: [
  69 + new webpack.optimize.ModuleConcatenationPlugin()
  70 + ]
67 71 };
... ...
build/webpack.dev.config.js
... ... @@ -2,13 +2,13 @@
2 2 * 本地预览
3 3 */
4 4  
5   -var path = require('path');
6   -var webpack = require('webpack');
7   -// var ExtractTextPlugin = require('extract-text-webpack-plugin');
8   -var HtmlWebpackPlugin = require('html-webpack-plugin');
9   -var merge = require('webpack-merge');
10   -var webpackBaseConfig = require('./webpack.base.config.js');
11   -var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin');
  5 +const path = require('path');
  6 +const webpack = require('webpack');
  7 +// const ExtractTextPlugin = require('extract-text-webpack-plugin');
  8 +const HtmlWebpackPlugin = require('html-webpack-plugin');
  9 +const merge = require('webpack-merge');
  10 +const webpackBaseConfig = require('./webpack.base.config.js');
  11 +const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin');
12 12  
13 13  
14 14 module.exports = merge(webpackBaseConfig, {
... ...
build/webpack.dist.dev.config.js
1   -var path = require('path');
2   -var webpack = require('webpack');
3   -var merge = require('webpack-merge');
4   -var webpackBaseConfig = require('./webpack.base.config.js');
  1 +const path = require('path');
  2 +const webpack = require('webpack');
  3 +const merge = require('webpack-merge');
  4 +const webpackBaseConfig = require('./webpack.base.config.js');
5 5  
6 6 process.env.NODE_ENV = 'production';
7 7  
... ...
build/webpack.dist.locale.config.js
1   -var path = require('path');
2   -var webpack = require('webpack');
3   -var entry = require('./locale');
  1 +const path = require('path');
  2 +const webpack = require('webpack');
  3 +const entry = require('./locale');
4 4 process.env.NODE_ENV = 'production';
5 5  
6 6 module.exports = {
... ... @@ -12,7 +12,7 @@ module.exports = {
12 12 loader: 'babel-loader',
13 13 exclude: /node_modules/
14 14 }
15   - ],
  15 + ]
16 16 },
17 17 output: {
18 18 path: path.resolve(__dirname, '../dist/locale'),
... ... @@ -29,4 +29,4 @@ module.exports = {
29 29 }
30 30 })
31 31 ]
32   -}
33 32 \ No newline at end of file
  33 +};
... ...
build/webpack.dist.prod.config.js
1   -var path = require('path');
2   -var webpack = require('webpack');
3   -var merge = require('webpack-merge');
4   -var webpackBaseConfig = require('./webpack.base.config.js');
  1 +const path = require('path');
  2 +const webpack = require('webpack');
  3 +const merge = require('webpack-merge');
  4 +const webpackBaseConfig = require('./webpack.base.config.js');
  5 +const CompressionPlugin = require('compression-webpack-plugin');
5 6  
6 7 process.env.NODE_ENV = 'production';
7 8  
... ... @@ -34,6 +35,13 @@ module.exports = merge(webpackBaseConfig, {
34 35 compress: {
35 36 warnings: false
36 37 }
  38 + }),
  39 + new CompressionPlugin({
  40 + asset: '[path].gz[query]',
  41 + algorithm: 'gzip',
  42 + test: /\.(js|css)$/,
  43 + threshold: 10240,
  44 + minRatio: 0.8
37 45 })
38 46 ]
39 47 });
... ...
build/webpack.test.config.js
... ... @@ -2,12 +2,12 @@
2 2 * 用于单元测试
3 3 */
4 4  
5   -var webpack = require('webpack');
6   -var merge = require('webpack-merge');
7   -var webpackBaseConfig = require('./webpack.base.config.js');
  5 +const webpack = require('webpack');
  6 +const merge = require('webpack-merge');
  7 +const webpackBaseConfig = require('./webpack.base.config.js');
8 8  
9 9  
10   -var webpackConfig = merge(webpackBaseConfig, {
  10 +const webpackConfig = merge(webpackBaseConfig, {
11 11 // use inline sourcemap for karma-sourcemap-loader
12 12 devtool: '#inline-source-map',
13 13 plugins: [
... ...
package-lock.json
1 1 {
2 2 "name": "iview",
3   - "version": "2.3.2",
  3 + "version": "2.4.0",
4 4 "lockfileVersion": 1,
5 5 "requires": true,
6 6 "dependencies": {
... ... @@ -1887,6 +1887,25 @@
1887 1887 }
1888 1888 }
1889 1889 },
  1890 + "compression-webpack-plugin": {
  1891 + "version": "1.0.0",
  1892 + "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-1.0.0.tgz",
  1893 + "integrity": "sha512-OPp+tvvMCd8FrJHDLG4v5EpP4Fe5w5uBNXOmc3K7SdBaK1FH+TGwtafG9GLgTI6c2WHIgDFt98T8qXwaXuyRnw==",
  1894 + "requires": {
  1895 + "async": "2.4.1",
  1896 + "webpack-sources": "1.0.1"
  1897 + },
  1898 + "dependencies": {
  1899 + "async": {
  1900 + "version": "2.4.1",
  1901 + "resolved": "https://registry.npmjs.org/async/-/async-2.4.1.tgz",
  1902 + "integrity": "sha1-YqVrJ5yYoR0JhwlqAcw+6463u9c=",
  1903 + "requires": {
  1904 + "lodash": "4.17.4"
  1905 + }
  1906 + }
  1907 + }
  1908 + },
1890 1909 "concat-map": {
1891 1910 "version": "0.0.1",
1892 1911 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
... ... @@ -12302,8 +12321,7 @@
12302 12321 "lodash": {
12303 12322 "version": "4.17.4",
12304 12323 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
12305   - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
12306   - "dev": true
  12324 + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
12307 12325 },
12308 12326 "lodash._baseassign": {
12309 12327 "version": "3.2.0",
... ... @@ -14438,14 +14456,12 @@
14438 14456 "source-list-map": {
14439 14457 "version": "2.0.0",
14440 14458 "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz",
14441   - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==",
14442   - "dev": true
  14459 + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A=="
14443 14460 },
14444 14461 "source-map": {
14445 14462 "version": "0.5.6",
14446 14463 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
14447   - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
14448   - "dev": true
  14464 + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI="
14449 14465 },
14450 14466 "source-map-support": {
14451 14467 "version": "0.4.18",
... ... @@ -16272,7 +16288,6 @@
16272 16288 "version": "1.0.1",
16273 16289 "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz",
16274 16290 "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==",
16275   - "dev": true,
16276 16291 "requires": {
16277 16292 "source-list-map": "2.0.0",
16278 16293 "source-map": "0.5.6"
... ...
package.json
... ... @@ -41,6 +41,7 @@
41 41 },
42 42 "dependencies": {
43 43 "async-validator": "^1.8.1",
  44 + "compression-webpack-plugin": "^1.0.0",
44 45 "core-js": "^2.5.0",
45 46 "deepmerge": "^1.5.1",
46 47 "element-resize-detector": "^1.1.12",
... ...