2025-01-24 21:31:48 +01:00

49 lines
1.3 KiB
JavaScript

const CopyWebpackPlugin = require("copy-webpack-plugin");
const path = require("path");
const webpack = require("webpack");
module.exports = {
entry: "./src/index.ts",
output: {
path: path.resolve(__dirname, "build"),
filename: "./index.js",
},
experiments: {
asyncWebAssembly: true,
},
mode: "development",
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/,
},
],
},
resolve: {
extensions: ['.tsx', '.ts', '.js'],
fallback: {
"crypto": require.resolve("crypto-browserify"),
"stream": require.resolve("stream-browserify"),
"assert": require.resolve("assert/"),
"buffer": require.resolve("buffer/"),
"process": require.resolve("process/browser"),
"vm": require.resolve("vm-browserify")
},
alias: {
'@chainsafe/bls-keystore/lib/cipher.js': path.resolve(__dirname, 'node_modules/@chainsafe/bls-keystore/lib/cipher'),
'@chainsafe/bls-keystore/lib/kdf.js': path.resolve(__dirname, 'node_modules/@chainsafe/bls-keystore/lib/kdf')
}
},
plugins: [
new webpack.ProvidePlugin({
Buffer: ['buffer', 'Buffer'],
process: 'process/browser',
}),
new CopyWebpackPlugin({
patterns: ["index.html", "favicon.ico", "favicon.png", "manifest.json"],
}),
],
};