| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- /**
- * @author: Yuki Takei <yuki@weseek.co.jp>
- */
- const helpers = require('./helpers');
- const webpack = require('webpack');
- const webpackMerge = require('webpack-merge'); // used to merge webpack configs
- const commonConfig = require('./webpack.common.js'); // the settings that are common to prod and dev
- /**
- * Webpack Plugins
- */
- const ExtractTextPlugin = require('extract-text-webpack-plugin');
- const UglifyJsPlugin = require('webpack/lib/optimize/UglifyJsPlugin');
- const OptimizeJsPlugin = require('optimize-js-plugin');
- const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
- /**
- * Webpack Constants
- */
- const ANALYZE = process.env.ANALYZE;
- const ENV = process.env.NODE_ENV = process.env.ENV = 'production';
- module.exports = function(env) {
- return webpackMerge(commonConfig({ env: ENV }), {
- devtool: undefined,
- output: {
- path: helpers.root('public/js'),
- publicPath: '/js/',
- filename: '[name].[chunkhash].bundle.js',
- sourceMapFilename: '[name].[chunkhash].bundle.map',
- chunkFilename: '[id].[chunkhash].chunk.js'
- },
- module: {
- rules: [
- {
- test: /\.scss$/,
- use: ExtractTextPlugin.extract({
- fallback: 'style-loader',
- use: [
- { loader: 'css-loader', options: {
- sourceMap: false,
- minimize: true
- } },
- { loader: 'postcss-loader', options: {
- sourceMap: false,
- plugins: (loader) => [
- require('autoprefixer')()
- ]
- } },
- { loader: 'sass-loader', options: { sourceMap: false } }
- ]
- }),
- include: [helpers.root('resource/styles/scss')]
- }
- ]
- },
- plugins: [
- new webpack.DefinePlugin({
- 'process.env': {
- NODE_ENV: JSON.stringify(ENV),
- }
- }),
- new ExtractTextPlugin('[name].[contenthash].css'),
- new OptimizeJsPlugin({
- sourceMap: false
- }),
- new UglifyJsPlugin({
- // beautify: true, //debug
- // mangle: false, //debug
- // dead_code: false, //debug
- // unused: false, //debug
- // deadCode: false, //debug
- // compress: {
- // screw_ie8: true,
- // keep_fnames: true,
- // drop_debugger: false,
- // dead_code: false,
- // unused: false
- // }, // debug
- // comments: true, //debug
- beautify: false, //prod
- output: {
- comments: false
- }, //prod
- mangle: {
- screw_ie8: true
- }, //prod
- compress: {
- screw_ie8: true,
- warnings: false,
- conditionals: true,
- unused: true,
- comparisons: true,
- sequences: true,
- dead_code: true,
- evaluate: true,
- if_return: true,
- join_vars: true,
- negate_iife: false // we need this for lazy v8
- },
- }),
- new BundleAnalyzerPlugin({
- analyzerMode: ANALYZE ? 'static' : 'disabled',
- reportFilename: helpers.root('report/bundle-analyzer.html'),
- openAnalyzer: false,
- }),
- ],
- });
- };
|