+ {
+ test: /\.(js|jsx|tsx|ts)$/, // All ts and tsx files will be process by
+ exclude: /node_modules/, // ignore node_modules
+ loader: "babel-loader",
+ },
+ // Due to some weird babel issue: https://github.com/webpack/webpack/issues/11467
+ {
+ test: /\.m?js/,
+ resolve: {
+ fullySpecified: false,
+ },
+ },
+ ],
+ },
+ plugins: [
+ new webpack.DefinePlugin({
+ "process.env.COMMIT_HASH": `"${env.COMMIT_HASH}"`,
+ "process.env.NODE_ENV": `"${mode}"`,
+ }),
+ new MiniCssExtractPlugin({
+ filename: "styles/styles.css",
+ }),
+ new CopyPlugin({
+ patterns: [{ from: "./src/assets", to: "./assets" }],
+ }),
+ new webpack.BannerPlugin({
+ banner,
+ }),