]> source.dussan.org Git - gitea.git/commitdiff
Fall back to esbuild for css minify (#26445)
authorsilverwind <me@silverwind.io>
Fri, 11 Aug 2023 04:13:25 +0000 (06:13 +0200)
committerGitHub <noreply@github.com>
Fri, 11 Aug 2023 04:13:25 +0000 (06:13 +0200)
Fixes https://github.com/go-gitea/gitea/issues/26439.

The minification result is not ideal with esbuild, but it's better than
failing competely.

Co-authored-by: Giteabot <teabot@gitea.io>
webpack.config.js

index 69d803b1e2be6caed23f9966396df580d944c733..95749611162eb579f37fdd710223f14fdd095afa 100644 (file)
@@ -11,7 +11,6 @@ import webpack from 'webpack';
 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;
@@ -52,6 +51,12 @@ const filterCssImport = (url, ...args) => {
   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',
@@ -97,10 +102,10 @@ export default {
       new EsbuildPlugin({
         target: 'es2015',
         minify: true,
-        css: false,
+        css: !LightningCssMinifyPlugin,
         legalComments: 'none',
       }),
-      new LightningCssMinifyPlugin(),
+      LightningCssMinifyPlugin && new LightningCssMinifyPlugin(),
     ],
     splitChunks: {
       chunks: 'async',