mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	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';
 | |
|     }
 | |
|   },
 | |
| };
 |