diff --git a/build/build-style.js b/build/build-style.js index 74eb4af3..dde8d1cd 100644 --- a/build/build-style.js +++ b/build/build-style.js @@ -1,8 +1,8 @@ -var gulp = require('gulp'); -var cleanCSS = require('gulp-clean-css'); -var less = require('gulp-less'); -var rename = require('gulp-rename'); -var autoprefixer = require('gulp-autoprefixer'); +const gulp = require('gulp'); +const cleanCSS = require('gulp-clean-css'); +const less = require('gulp-less'); +const rename = require('gulp-rename'); +const autoprefixer = require('gulp-autoprefixer'); // 编译less gulp.task('css', function () { diff --git a/build/locale.js b/build/locale.js index 82efcb69..7c81e675 100644 --- a/build/locale.js +++ b/build/locale.js @@ -1,8 +1,8 @@ -const readDir = require('fs').readdirSync -const files = readDir('./src/locale/lang') -const entry = {} +const readDir = require('fs').readdirSync; +const files = readDir('./src/locale/lang'); +const entry = {}; files.forEach(file => { - const name = file.split('.')[0] - entry[name] = './src/locale/lang/' + file -}) -module.exports = entry \ No newline at end of file + const name = file.split('.')[0]; + entry[name] = './src/locale/lang/' + file; +}); +module.exports = entry; diff --git a/build/webpack.base.config.js b/build/webpack.base.config.js index d7558800..262b6a4a 100644 --- a/build/webpack.base.config.js +++ b/build/webpack.base.config.js @@ -1,9 +1,10 @@ /** * 公共配置 */ -var path = require('path'); +const path = require('path'); +const webpack = require('webpack'); function resolve (dir) { - return path.join(__dirname, '..', dir) + return path.join(__dirname, '..', dir); } module.exports = { @@ -63,5 +64,8 @@ module.exports = { 'vue': 'vue/dist/vue.esm.js', '@': resolve('src') } - } + }, + plugins: [ + new webpack.optimize.ModuleConcatenationPlugin() + ] }; diff --git a/build/webpack.dev.config.js b/build/webpack.dev.config.js index e0b2cd8e..d9ff4a46 100644 --- a/build/webpack.dev.config.js +++ b/build/webpack.dev.config.js @@ -2,13 +2,13 @@ * 本地预览 */ -var path = require('path'); -var webpack = require('webpack'); -// var ExtractTextPlugin = require('extract-text-webpack-plugin'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var merge = require('webpack-merge'); -var webpackBaseConfig = require('./webpack.base.config.js'); -var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); +const path = require('path'); +const webpack = require('webpack'); +// const ExtractTextPlugin = require('extract-text-webpack-plugin'); +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const merge = require('webpack-merge'); +const webpackBaseConfig = require('./webpack.base.config.js'); +const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); module.exports = merge(webpackBaseConfig, { diff --git a/build/webpack.dist.dev.config.js b/build/webpack.dist.dev.config.js index de27463d..9bc40bc6 100644 --- a/build/webpack.dist.dev.config.js +++ b/build/webpack.dist.dev.config.js @@ -1,7 +1,7 @@ -var path = require('path'); -var webpack = require('webpack'); -var merge = require('webpack-merge'); -var webpackBaseConfig = require('./webpack.base.config.js'); +const path = require('path'); +const webpack = require('webpack'); +const merge = require('webpack-merge'); +const webpackBaseConfig = require('./webpack.base.config.js'); process.env.NODE_ENV = 'production'; diff --git a/build/webpack.dist.locale.config.js b/build/webpack.dist.locale.config.js index a95eecb0..d16d088f 100644 --- a/build/webpack.dist.locale.config.js +++ b/build/webpack.dist.locale.config.js @@ -1,6 +1,6 @@ -var path = require('path'); -var webpack = require('webpack'); -var entry = require('./locale'); +const path = require('path'); +const webpack = require('webpack'); +const entry = require('./locale'); process.env.NODE_ENV = 'production'; module.exports = { @@ -12,7 +12,7 @@ module.exports = { loader: 'babel-loader', exclude: /node_modules/ } - ], + ] }, output: { path: path.resolve(__dirname, '../dist/locale'), @@ -29,4 +29,4 @@ module.exports = { } }) ] -} \ No newline at end of file +}; diff --git a/build/webpack.dist.prod.config.js b/build/webpack.dist.prod.config.js index 6dd09752..3a0c38e2 100644 --- a/build/webpack.dist.prod.config.js +++ b/build/webpack.dist.prod.config.js @@ -1,7 +1,8 @@ -var path = require('path'); -var webpack = require('webpack'); -var merge = require('webpack-merge'); -var webpackBaseConfig = require('./webpack.base.config.js'); +const path = require('path'); +const webpack = require('webpack'); +const merge = require('webpack-merge'); +const webpackBaseConfig = require('./webpack.base.config.js'); +const CompressionPlugin = require('compression-webpack-plugin'); process.env.NODE_ENV = 'production'; @@ -34,6 +35,13 @@ module.exports = merge(webpackBaseConfig, { compress: { warnings: false } + }), + new CompressionPlugin({ + asset: '[path].gz[query]', + algorithm: 'gzip', + test: /\.(js|css)$/, + threshold: 10240, + minRatio: 0.8 }) ] }); diff --git a/build/webpack.test.config.js b/build/webpack.test.config.js index 5c246011..e81b52c3 100644 --- a/build/webpack.test.config.js +++ b/build/webpack.test.config.js @@ -2,12 +2,12 @@ * 用于单元测试 */ -var webpack = require('webpack'); -var merge = require('webpack-merge'); -var webpackBaseConfig = require('./webpack.base.config.js'); +const webpack = require('webpack'); +const merge = require('webpack-merge'); +const webpackBaseConfig = require('./webpack.base.config.js'); -var webpackConfig = merge(webpackBaseConfig, { +const webpackConfig = merge(webpackBaseConfig, { // use inline sourcemap for karma-sourcemap-loader devtool: '#inline-source-map', plugins: [ diff --git a/package-lock.json b/package-lock.json index 05039016..539117af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "iview", - "version": "2.3.2", + "version": "2.4.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1887,6 +1887,25 @@ } } }, + "compression-webpack-plugin": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-1.0.0.tgz", + "integrity": "sha512-OPp+tvvMCd8FrJHDLG4v5EpP4Fe5w5uBNXOmc3K7SdBaK1FH+TGwtafG9GLgTI6c2WHIgDFt98T8qXwaXuyRnw==", + "requires": { + "async": "2.4.1", + "webpack-sources": "1.0.1" + }, + "dependencies": { + "async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.4.1.tgz", + "integrity": "sha1-YqVrJ5yYoR0JhwlqAcw+6463u9c=", + "requires": { + "lodash": "4.17.4" + } + } + } + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -12302,8 +12321,7 @@ "lodash": { "version": "4.17.4", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" }, "lodash._baseassign": { "version": "3.2.0", @@ -14438,14 +14456,12 @@ "source-list-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", - "dev": true + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==" }, "source-map": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" }, "source-map-support": { "version": "0.4.18", @@ -16272,7 +16288,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz", "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==", - "dev": true, "requires": { "source-list-map": "2.0.0", "source-map": "0.5.6" diff --git a/package.json b/package.json index 8f489201..6e10df54 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ }, "dependencies": { "async-validator": "^1.8.1", + "compression-webpack-plugin": "^1.0.0", "core-js": "^2.5.0", "deepmerge": "^1.5.1", "element-resize-detector": "^1.1.12",