gitea/webpack.config.js
silverwind 2982afe6b4 move jquery and jquery-migrate to npm/webpack (#9813)
Currently, this needs to be its own chunk because fomantic depends
on jQuery being present. The next step is to move fomantic to webpack
too after which we can combine the index,fomantic and jquery files into
one.

jquery-migrate is still neccessary because our ancient version of Dropzone
seems to break without it. I imagine it can be removed after a Dropzone
upgrade.
2020-01-21 19:32:33 +02:00

88 lines
1.9 KiB
JavaScript

const path = require('path');
const TerserPlugin = require('terser-webpack-plugin');
const { SourceMapDevToolPlugin } = require('webpack');
const VueLoaderPlugin = require('vue-loader/lib/plugin');
module.exports = {
mode: 'production',
entry: {
index: ['./web_src/js/index'],
swagger: ['./web_src/js/swagger'],
jquery: ['./web_src/js/jquery'],
},
devtool: false,
output: {
path: path.resolve(__dirname, 'public/js'),
filename: '[name].js',
chunkFilename: '[name].js',
},
optimization: {
minimize: true,
minimizer: [new TerserPlugin({
sourceMap: true,
extractComments: false,
terserOptions: {
output: {
comments: false,
},
},
})],
},
module: {
rules: [
{
test: /\.vue$/,
exclude: /node_modules/,
loader: 'vue-loader'
},
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: [
[
'@babel/preset-env',
{
useBuiltIns: 'usage',
corejs: 3,
}
]
],
plugins: [
[
'@babel/plugin-transform-runtime',
{
regenerator: true,
}
],
'@babel/plugin-proposal-object-rest-spread',
],
}
}
},
{
test: /\.css$/i,
use: ['style-loader', 'css-loader'],
},
]
},
plugins: [
new VueLoaderPlugin(),
new SourceMapDevToolPlugin({
filename: '[name].js.map',
exclude: [
'swagger.js',
],
}),
],
performance: {
maxEntrypointSize: 512000,
maxAssetSize: 512000,
assetFilter: (filename) => {
return !filename.endsWith('.map') && filename !== 'swagger.js';
}
},
};