Files
BetterSEQTA-Plus/webpack.config.js
T
2023-08-13 19:07:24 +10:00

60 lines
1.6 KiB
JavaScript

const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
module.exports = {
performance: {
hints: false,
maxEntrypointSize: 512000,
maxAssetSize: 512000,
},
devtool: 'cheap-module-source-map',
entry: {
'SEQTA': './src/SEQTA.js',
'background': './src/background.js',
'inject-documentload': './src/inject/documentload.css', // Entry for CSS
'inject-iframe': './src/inject/iframe.css', // Entry for CSS
'inject-injected': './src/inject/injected.css', // Entry for CSS
},
output: {
filename: (pathData) => {
const name = pathData.chunk.name.replace('inject-', '');
return name.includes('inject') ? `inject/${name}.js` : `${name}.js`;
},
path: path.resolve(__dirname, 'build'),
},
module: {
rules: [
{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
],
include: path.resolve(__dirname, 'src'),
},
{
test: /\.(png|svg|jpg|jpeg|gif)$/i,
type: 'asset/resource',
generator: {
filename: 'src/[path][name][ext]',
},
},
],
},
plugins: [
new MiniCssExtractPlugin({
filename: (pathData) => {
const name = pathData.chunk.name.replace('inject-', '');
return name.includes('inject') ? `inject/${name}.css` : `inject/${name}.css`;
},
}),
new CopyWebpackPlugin({
patterns: [
{ from: 'public', to: '.' },
{ from: 'src/inject/preview', to: 'inject/preview' },
],
}),
],
};