/* eslint @typescript-eslint/no-var-requires: "off" */ const path = require("path"); const HtmlWebpackPlugin = require("html-webpack-plugin"); const webpack = require("webpack"); const CopyPlugin = require("copy-webpack-plugin"); module.exports = { entry: path.resolve(__dirname, "src/index.tsx"), output: { path: path.resolve(__dirname, "..", "docs"), filename: "index.js", assetModuleFilename: "assets/[name][ext][hash]", }, resolve: { modules: [path.resolve(__dirname, "node_modules")], extensions: [".ts", ".tsx", ".js"], fallback: { buffer: require.resolve("buffer/"), }, }, module: { rules: [ { test: [/\.ts$/, /\.tsx$/], use: [ { loader: "ts-loader", options: { // transpileOnly: true, configFile: "tsconfig.json", }, }, ], }, { test: /\.css$/, use: ["style-loader", { loader: "css-loader", options: { importLoaders: 1 } }, "postcss-loader"], }, { test: /\.html$/, loader: "html-loader", }, ], }, plugins: [ new HtmlWebpackPlugin({ template: path.resolve(__dirname, "public/index.html"), filename: "./index.html", }), new webpack.ProvidePlugin({ Buffer: ["buffer", "Buffer"], process: "process/browser", }), new CopyPlugin({ patterns: [ { from: "public/", globOptions: { ignore: ["**/index.html*"], }, }, ], }), ], };