mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-11-22 17:56:30 -05:00
3b00601872
Previously, the HTML export template `html.hbs` included CDN links for the HTML and CSS resources. This commit enables Webpack to create a new `htmlexport.html` at build-time, which includes all resources inline. That template is then used as before by the frontend to be populated with the rendered note content. The tradeoff is that each exported .html file is about 5.6 MB in size, as we need to inline all fonts (icons & emojis). Signed-off-by: David Mehren <git@herrmehren.de>
39 lines
993 B
JavaScript
39 lines
993 B
JavaScript
const common = require('./webpack.common.js')
|
|
const htmlexport = require('./webpack.htmlexport')
|
|
const { merge } = require('webpack-merge')
|
|
const path = require('path')
|
|
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin')
|
|
const { ESBuildMinifyPlugin } = require('esbuild-loader')
|
|
|
|
module.exports = [
|
|
merge(common, {
|
|
mode: 'production',
|
|
output: {
|
|
path: path.join(__dirname, 'public/build'),
|
|
publicPath: 'build/',
|
|
filename: '[name].[contenthash].js'
|
|
},
|
|
optimization: {
|
|
minimizer: [
|
|
new ESBuildMinifyPlugin({
|
|
target: 'es2015',
|
|
exclude: ['MathJax/extensions/a11y/mathmaps']
|
|
})
|
|
],
|
|
splitChunks: {
|
|
chunks: 'all'
|
|
}
|
|
},
|
|
devtool: 'source-map'
|
|
}),
|
|
merge(htmlexport, {
|
|
mode: 'production',
|
|
optimization: {
|
|
minimizer: [
|
|
new ESBuildMinifyPlugin({
|
|
target: 'es2015'
|
|
}),
|
|
new OptimizeCSSAssetsPlugin({})
|
|
]
|
|
}
|
|
})]
|