mirror of
https://github.com/go-gitea/gitea.git
synced 2024-12-01 06:49:17 +08:00
2982afe6b4
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.
88 lines
1.9 KiB
JavaScript
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';
|
|
}
|
|
},
|
|
};
|