const path = require("path"); const autoprefixer = require("autoprefixer"); const webpack = require("webpack"); const { parseEnvVariables } = require(path.resolve(global.__childdir, "./env")); module.exports = { mode: "development", devtool: false, output: { libraryTarget: "umd", filename: "[name].js", publicPath: "", }, resolve: { extensions: [".js", ".ts", ".tsx", ".css", ".scss"], }, module: { rules: [ { test: /\.(sa|sc|c)ss$/, exclude: /node_modules/, use: [ "style-loader", { loader: "css-loader" }, { loader: "postcss-loader", options: { postcssOptions: { plugins: [autoprefixer()], }, }, }, "sass-loader", ], }, { test: /\.(ts|tsx|js|jsx|mjs)$/, exclude: /node_modules\/(?!browser-fs-access)/, use: [ { loader: "ts-loader", options: { transpileOnly: true, configFile: path.resolve(__dirname, "./tsconfig.dev.json"), }, }, ], }, { test: /\.(woff|woff2|eot|ttf|otf)$/, type: "asset/resource", }, ], }, optimization: { splitChunks: { chunks: "async", cacheGroups: { vendors: { test: /[\\/]node_modules[\\/]/, name: "vendor", }, }, }, }, plugins: [ new webpack.EvalSourceMapDevToolPlugin({ exclude: /vendor/ }), new webpack.DefinePlugin({ "process.env": parseEnvVariables( path.resolve(__dirname, "../../.env.development"), ), }), ], externals: { react: { root: "React", commonjs2: "react", commonjs: "react", amd: "react", }, "react-dom": { root: "ReactDOM", commonjs2: "react-dom", commonjs: "react-dom", amd: "react-dom", }, }, };