From 3ffa41d8b041ba46963fb163bbc504af11460305 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 28 Oct 2021 10:18:12 +0800 Subject: [PATCH] Use the original file content when an error occurs. --- .../AspNetCore/Mvc/UI/Bundling/BundlerBase.cs | 22 +++++++++++++------ .../Abp/Minify/NUglify/NUglifyException.cs | 9 +++++++- .../Abp/Minify/NUglify/NUglifyMinifierBase.cs | 22 +++++++++++++++---- 3 files changed, 41 insertions(+), 12 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundlerBase.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundlerBase.cs index 9de47bba1f..23e93fa46a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundlerBase.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundlerBase.cs @@ -5,7 +5,6 @@ using Microsoft.Extensions.FileProviders; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; -using Volo.Abp.AspNetCore.VirtualFileSystem; using Volo.Abp.DependencyInjection; using Volo.Abp.Minify; @@ -102,13 +101,22 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling Logger.LogDebug($"- {fileName} ({nonMinifiedSize} bytes) - non minified, minifying..."); - fileContent = Minifier.Minify( - fileContent, - context.BundleRelativePath, - fileName - ); + try + { + fileContent = Minifier.Minify( + fileContent, + context.BundleRelativePath, + fileName + ); - Logger.LogInformation($" > Minified {fileName} ({nonMinifiedSize} bytes -> {fileContent.Length} bytes)"); + Logger.LogInformation($" > Minified {fileName} ({nonMinifiedSize} bytes -> {fileContent.Length} bytes)"); + + return fileContent; + } + catch (Exception ex) + { + Logger.LogWarning($"Unable to minify the file: {fileName}. Return file content without minification.", ex); + } return fileContent; } diff --git a/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyException.cs b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyException.cs index cb24f7812e..7ae76bea4f 100644 --- a/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyException.cs +++ b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyException.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.Runtime.Serialization; using NUglify; @@ -14,6 +15,12 @@ namespace Volo.Abp.Minify.NUglify Errors = errors; } + public NUglifyException(string message, Exception innerException) + : base(message, innerException) + { + + } + /// /// Constructor for serializing. /// @@ -23,4 +30,4 @@ namespace Volo.Abp.Minify.NUglify } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyMinifierBase.cs b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyMinifierBase.cs index 491cff1a66..946acd5fbd 100644 --- a/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyMinifierBase.cs +++ b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyMinifierBase.cs @@ -31,11 +31,25 @@ namespace Volo.Abp.Minify.NUglify string fileName = null, string originalFileName = null) { - var result = UglifySource(source, fileName); - CheckErrors(result, originalFileName); - return result.Code; + try + { + var result = UglifySource(source, fileName); + CheckErrors(result, originalFileName); + return result.Code; + } + catch (Exception e) + { + var errorMessage = "There is an error in uglifying the given source code!"; + + if (originalFileName != null) + { + errorMessage += " Original file: " + originalFileName; + } + + throw new NUglifyException($"{errorMessage}{Environment.NewLine}{e.Message}", e); + } } protected abstract UglifyResult UglifySource(string source, string fileName); } -} \ No newline at end of file +}