Files
BetterSEQTA-Plus/webpack.config.js
T
2023-09-25 13:10:55 +10:00

73 lines
1.9 KiB
JavaScript

import path from "path";
import MiniCssExtractPlugin from "mini-css-extract-plugin";
import CopyWebpackPlugin from "copy-webpack-plugin";
import ESLintPlugin from "eslint-webpack-plugin";
export default {
target: "web",
node: {
__dirname: true
},
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`;
},
// eslint-disable-next-line no-undef
path: path.resolve("build"),
publicPath: "",
},
module: {
rules: [
{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader,
{
loader: "css-loader",
options: {
importLoaders: 1
}
}
]
},
{
test: /\.(png|svg|jpg|jpeg|gif)$/i,
type: "asset/resource",
generator: {
filename: "src/[path][name][ext]",
},
},
],
},
plugins: [
new ESLintPlugin(),
new MiniCssExtractPlugin({
filename: "[name].css"
}),
new CopyWebpackPlugin({
patterns: [
{ from: "public", to: "." },
{ from: "src/inject/preview", to: "inject/preview" },
{ from: "node_modules/webextension-polyfill/dist/browser-polyfill.js", to: "."},
{ from: "interface/dist/client", to: "client" },
{ from: "interface/dist/index.html", to: "interface/index.html" }
],
}),
],
};