From b1f2b39581c47f8b101d1222c8e0c3f7b2579047 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Wed, 5 Aug 2026 11:54:30 +0200 Subject: update project tooling --- webpack.config.js | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) (limited to 'webpack.config.js') diff --git a/webpack.config.js b/webpack.config.js index 081a2a1..968fd2e 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,6 +1,8 @@ const webpack = require('webpack'); const path = require('path'); +const CircularDependencyPlugin = require('circular-dependency-plugin') + const isProduction = process.env.NODE_ENV === 'production'; const isMock = process.env.NODE_ENV === 'mock'; @@ -15,6 +17,19 @@ const config = { }, module: { rules: [ + { + test: /\.(js|ts)$/, + exclude: /node_modules/, + use: { + loader: 'babel-loader', + options: { + presets: [ + "@babel/preset-env", + "@babel/preset-typescript" + ], + } + } + }, { test: /\.png/, type: 'asset/inline', @@ -23,7 +38,7 @@ const config = { }, plugins: [ new webpack.NormalModuleReplacementPlugin( - /-ENV.js/, + /-ENV.(js|ts)/, (resource) => { resource.request = resource.request.replace( /-ENV/, @@ -34,7 +49,18 @@ const config = { resource.createData.request = resource.request; } } - ) + ), + new CircularDependencyPlugin({ + // exclude detection of files based on a RegExp + exclude: /node_modules/, + // add errors to webpack instead of warnings + failOnError: true, + // allow import cycles that include an asyncronous import, + // e.g. via import(/* webpackMode: "weak" */ './file.js') + allowAsyncCycles: false, + // set the current working directory for displaying module paths + cwd: process.cwd(), + }) ], }; -- cgit v1.2.3