overleaf/services/web/webpack.config.prod.js

32 lines
977 B
JavaScript
Raw Normal View History

const merge = require('webpack-merge')
const TerserPlugin = require('terser-webpack-plugin')
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const base = require('./webpack.config')
module.exports = merge(base, {
mode: 'production',
// Enable a full source map. Generates a comment linking to the source map
devtool: 'source-map',
2018-03-13 13:44:08 -04:00
output: {
// Override filename to include hash for immutable caching
filename: 'js/[name]-[chunkhash].js'
},
optimization: {
// Minify JS (with Terser) and CSS (with cssnano)
minimizer: [new TerserPlugin(), new OptimizeCssAssetsPlugin()]
},
plugins: [
// Extract CSS to a separate file (rather than inlining to a <style> tag)
new MiniCssExtractPlugin({
// Output to public/stylesheets directory and append hash for immutable caching
filename: 'stylesheets/[name]-[chunkhash].css'
})
]
})