import {fileURLToPath} from 'node:url';
import {readFileSync} from 'node:fs';
import {env} from 'node:process';
-import {LightningCssMinifyPlugin} from 'lightningcss-loader';
const {EsbuildPlugin} = EsBuildLoader;
const {SourceMapDevToolPlugin, DefinePlugin} = webpack;
return true;
};
+// in case lightningcss fails to load, fall back to esbuild for css minify
+let LightningCssMinifyPlugin;
+try {
+ ({LightningCssMinifyPlugin} = await import('lightningcss-loader'));
+} catch {}
+
/** @type {import("webpack").Configuration} */
export default {
mode: isProduction ? 'production' : 'development',
new EsbuildPlugin({
target: 'es2015',
minify: true,
- css: false,
+ css: !LightningCssMinifyPlugin,
legalComments: 'none',
}),
- new LightningCssMinifyPlugin(),
+ LightningCssMinifyPlugin && new LightningCssMinifyPlugin(),
],
splitChunks: {
chunks: 'async',