voice-changer/recorder/webpack.common.js

66 lines
1.9 KiB
JavaScript
Raw Permalink Normal View History

2023-02-08 21:11:38 +03:00
/* 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*"],
},
},
],
}),
],
};