You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.4 KiB
45 lines
1.4 KiB
const webpack = require('webpack'); |
|
const HtmlWebpackPlugin = require('html-webpack-plugin'); |
|
const ExtractTextPlugin = require('extract-text-webpack-plugin'); |
|
const merge = require('webpack-merge'); |
|
const webpackBaseConfig = require('./webpack.base.config.js'); |
|
const fs = require('fs'); |
|
|
|
fs.open('./src/config/env.js', 'w', function (err, fd) { |
|
const buf = 'export default "production";'; |
|
// fs.write(fd, buf, 0, buf.length, 0, function (err, written, buffer){}); |
|
fs.write(fd, buf, 0, 'utf-8', function (err, written, buffer) { }); |
|
}); |
|
|
|
module.exports = merge(webpackBaseConfig, { |
|
output: { |
|
publicPath: '/dist/', |
|
filename: '[name].[hash].js', |
|
chunkFilename: '[name].[hash].chunk.js' |
|
}, |
|
plugins: [ |
|
new ExtractTextPlugin({ |
|
filename: '[name].[hash].css', |
|
allChunks: true |
|
}), |
|
new webpack.optimize.CommonsChunkPlugin({ |
|
name: 'vendors', |
|
filename: 'vendors.[hash].js' |
|
}), |
|
new webpack.DefinePlugin({ |
|
'process.env': { |
|
NODE_ENV: '"production"' |
|
} |
|
}), |
|
new webpack.optimize.UglifyJsPlugin({ |
|
compress: { |
|
warnings: false |
|
} |
|
}), |
|
new HtmlWebpackPlugin({ |
|
filename: '../index_prod.html', |
|
template: './src/template/index.ejs', |
|
inject: false |
|
}) |
|
] |
|
}); |