1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- const webpack = require('webpack')
- const merge = require('webpack-merge')
- const path = require('path')
- const CleanWebpackPlugin = require('clean-webpack-plugin')
- const UglifyJSPlugin = require('uglifyjs-webpack-plugin')
- const ExtractTextPlugin = require('extract-text-webpack-plugin')
- const OfflinePlugin = require('offline-plugin')
- const DuplicatePackageCheckerPlugin = require('duplicate-package-checker-webpack-plugin')
- const SimpleProgressWebpackPlugin = require('simple-progress-webpack-plugin')
- const common = require('./webpack.common.js')
- module.exports = merge(common, {
- module: {
- rules: []
- },
- plugins: [
- new SimpleProgressWebpackPlugin({
- format: 'expanded'
- }),
- new CleanWebpackPlugin([
- 'assets/js/*.*',
- 'assets/css/*.*',
- 'assets/*.js',
- 'assets/*.json'
- ], {
- root: process.cwd(),
- verbose: false
- }),
- new UglifyJSPlugin({
- cache: path.join(process.cwd(), '.webpack-cache/uglify'),
- parallel: true
- }),
- new webpack.DefinePlugin({
- 'process.env.NODE_ENV': JSON.stringify('production')
- }),
- new ExtractTextPlugin('css/bundle.css'),
- new OfflinePlugin({
- publicPath: '/',
- externals: ['/'],
- caches: {
- main: [
- 'js/runtime.js',
- 'js/vendor.js',
- 'js/client.js'
- ],
- additional: [
- ':externals:'
- ],
- optional: [
- 'js/*.chunk.js'
- ]
- },
- safeToUseOptionalCaches: true
- }),
- new DuplicatePackageCheckerPlugin(),
- // Disable Extract Text Plugin stats:
- {
- apply(compiler) {
- compiler.plugin('done', stats => {
- if (Array.isArray(stats.compilation.children)) {
- stats.compilation.children = stats.compilation.children.filter(child => {
- return child.name.indexOf('extract-text-webpack-plugin') !== 0
- })
- }
- })
- }
- }
- ]
- })
|