inspector/www/webpack.config.js
2025-05-19 16:45:26 +02:00

71 lines
1.9 KiB
JavaScript

const CopyWebpackPlugin = require("copy-webpack-plugin");
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
const path = require('path');
const webpack = require('webpack');
const isDevelopment = process.env.NODE_ENV !== 'production';
module.exports = [{
entry: "./bootstrap.js",
output: {
path: path.resolve(__dirname, "dist"),
filename: "bootstrap.js",
},
mode: isDevelopment ? 'development' : 'production',
module: {
rules: [
{
test: /\.[jt]sx?$/,
exclude: /node_modules/,
use: [
{
loader: require.resolve('babel-loader'),
options: {
plugins: [
isDevelopment && require.resolve('react-refresh/babel'),
].filter(Boolean),
},
},
'ts-loader',
],
},
{
test: /\.css$/i,
use: ["style-loader", "css-loader", "postcss-loader"],
},
],
},
resolve: {
extensions: ['.tsx', '.ts', '.js'],
},
plugins: [
new CopyWebpackPlugin({patterns: [{from: 'index.html'}]}),
isDevelopment && new ReactRefreshWebpackPlugin(),
].filter(Boolean),
}, {
entry: "./src/worker.ts",
target: 'webworker',
output: {
path: path.resolve(__dirname, "dist"),
filename: "worker.js"
},
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/,
},
],
},
resolve: {
extensions: ['.tsx', '.ts', '.js'],
},
experiments: {
syncWebAssembly: true
},
mode: "development",
experiments: {
asyncWebAssembly: true,
},
}];