48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
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');
|
|
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
|
|
|
|
process.env.NODE_ENV = 'production';
|
|
|
|
module.exports = merge(webpackBaseConfig, {
|
|
devtool: 'source-map',
|
|
entry: {
|
|
main: './src/index.js'
|
|
},
|
|
output: {
|
|
path: path.resolve(__dirname, '../dist'),
|
|
publicPath: '/dist/',
|
|
filename: 'iview.min.js',
|
|
library: 'iview',
|
|
libraryTarget: 'umd',
|
|
umdNamedDefine: true
|
|
},
|
|
externals: {
|
|
vue: {
|
|
root: 'Vue',
|
|
commonjs: 'vue',
|
|
commonjs2: 'vue',
|
|
amd: 'vue'
|
|
}
|
|
},
|
|
plugins: [
|
|
// @todo
|
|
new webpack.DefinePlugin({
|
|
'process.env.NODE_ENV': '"production"'
|
|
}),
|
|
new UglifyJsPlugin({
|
|
parallel: true,
|
|
sourceMap: true
|
|
}),
|
|
new CompressionPlugin({
|
|
asset: '[path].gz[query]',
|
|
algorithm: 'gzip',
|
|
test: /\.(js|css)$/,
|
|
threshold: 10240,
|
|
minRatio: 0.8
|
|
})
|
|
]
|
|
});
|