| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /**
- * @author: Yuki Takei <yuki@weseek.co.jp>
- */
- const helpers = require('./helpers');
- /**
- * Webpack Plugins
- */
- const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
- const ExtractTextPlugin = require('extract-text-webpack-plugin');
- const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
- const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
- /**
- * Webpack Constants
- */
- const ANALYZE = process.env.ANALYZE;
- module.exports = require('./webpack.common')({
- mode: 'production',
- devtool: undefined,
- output: {
- filename: '[name].[chunkhash].bundle.js',
- chunkFilename: '[name].[chunkhash].chunk.js'
- },
- module: {
- rules: [
- {
- test: /\.scss$/,
- use: ExtractTextPlugin.extract({
- use: [
- 'css-loader',
- { loader: 'postcss-loader', options: {
- sourceMap: false,
- plugins: (loader) => [
- require('autoprefixer')()
- ]
- } },
- 'sass-loader'
- ]
- }),
- include: [helpers.root('resource/styles/scss'), helpers.root('resource/styles/hackmd')]
- }
- ]
- },
- plugins: [
- new ExtractTextPlugin({
- filename: '[name].[hash].css',
- }),
- new BundleAnalyzerPlugin({
- analyzerMode: ANALYZE ? 'static' : 'disabled',
- reportFilename: helpers.root('report/bundle-analyzer.html'),
- openAnalyzer: false,
- }),
- ],
- optimization: {
- minimizer: [
- new UglifyJsPlugin({
- cache: true,
- parallel: true,
- }),
- new OptimizeCSSAssetsPlugin({})
- ],
- },
- });
|