Browse Source

Add AbpMinifyModule.

pull/2169/head
maliming 7 years ago
parent
commit
df26af69fc
  1. 16
      framework/Volo.Abp.sln
  2. 1
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj
  3. 3
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs
  4. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundlerBase.cs
  5. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Scripts/ScriptBundler.cs
  6. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Styles/StyleBundler.cs
  7. 24
      framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj
  8. 8
      framework/src/Volo.Abp.Minify/Volo/Abp/Minify/AbpMinifyModule.cs
  9. 7
      framework/src/Volo.Abp.Minify/Volo/Abp/Minify/Html/IHtmlMinifier.cs
  10. 2
      framework/src/Volo.Abp.Minify/Volo/Abp/Minify/IMinifier.cs
  11. 4
      framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyCssMinifier.cs
  12. 2
      framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyException.cs
  13. 13
      framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyHtmlMinifier.cs
  14. 6
      framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyJavascriptMinifier.cs
  15. 2
      framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyMinifierBase.cs
  16. 2
      framework/src/Volo.Abp.Minify/Volo/Abp/Minify/Scripts/IJavascriptMinifier.cs
  17. 2
      framework/src/Volo.Abp.Minify/Volo/Abp/Minify/Styles/ICssMinifier.cs
  18. 26
      framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/JavascriptMinifier_Tests.cs
  19. 16
      framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj
  20. 11
      framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/AbpMinifyTestModule.cs
  21. 28
      framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/NUglify/CssMinifier_Tests.cs
  22. 27
      framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/NUglify/HtmlMinifier_Tests.cs
  23. 28
      framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/NUglify/JavascriptMinifier_Tests.cs

16
framework/Volo.Abp.sln

@ -250,7 +250,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.MailKit.Tests", "t
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.ObjectMapping.Tests", "test\Volo.Abp.ObjectMapping.Tests\Volo.Abp.ObjectMapping.Tests.csproj", "{667F5544-C1EB-447C-96FD-9B757F04DE2B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Ddd.Application.Contracts", "src\Volo.Abp.Ddd.Application.Contracts\Volo.Abp.Ddd.Application.Contracts.csproj", "{73559227-EBF0-475F-835B-1FF0CD9132AA}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Ddd.Application.Contracts", "src\Volo.Abp.Ddd.Application.Contracts\Volo.Abp.Ddd.Application.Contracts.csproj", "{73559227-EBF0-475F-835B-1FF0CD9132AA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Minify", "src\Volo.Abp.Minify\Volo.Abp.Minify.csproj", "{928DC30D-C078-4BB4-A9F8-FE7252C67DC6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Minify.Tests", "test\Volo.Abp.Minify.Tests\Volo.Abp.Minify.Tests.csproj", "{E69182B3-350A-43F5-A935-5EBBEBECEF97}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -750,6 +754,14 @@ Global
{73559227-EBF0-475F-835B-1FF0CD9132AA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{73559227-EBF0-475F-835B-1FF0CD9132AA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{73559227-EBF0-475F-835B-1FF0CD9132AA}.Release|Any CPU.Build.0 = Release|Any CPU
{928DC30D-C078-4BB4-A9F8-FE7252C67DC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{928DC30D-C078-4BB4-A9F8-FE7252C67DC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{928DC30D-C078-4BB4-A9F8-FE7252C67DC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{928DC30D-C078-4BB4-A9F8-FE7252C67DC6}.Release|Any CPU.Build.0 = Release|Any CPU
{E69182B3-350A-43F5-A935-5EBBEBECEF97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E69182B3-350A-43F5-A935-5EBBEBECEF97}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E69182B3-350A-43F5-A935-5EBBEBECEF97}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E69182B3-350A-43F5-A935-5EBBEBECEF97}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -878,6 +890,8 @@ Global
{70DD6E17-B98B-4B00-8F38-C489E291BB53} = {447C8A77-E5F0-4538-8687-7383196D04EA}
{667F5544-C1EB-447C-96FD-9B757F04DE2B} = {447C8A77-E5F0-4538-8687-7383196D04EA}
{73559227-EBF0-475F-835B-1FF0CD9132AA} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
{928DC30D-C078-4BB4-A9F8-FE7252C67DC6} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
{E69182B3-350A-43F5-A935-5EBBEBECEF97} = {447C8A77-E5F0-4538-8687-7383196D04EA}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5}

1
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj

@ -13,6 +13,7 @@
<ItemGroup>
<ProjectReference Include="..\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj" />
<ProjectReference Include="..\Volo.Abp.Minify\Volo.Abp.Minify.csproj" />
</ItemGroup>
</Project>

3
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs

@ -1,9 +1,10 @@
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap;
using Volo.Abp.Minify;
using Volo.Abp.Modularity;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling
{
[DependsOn(typeof(AbpAspNetCoreMvcUiBootstrapModule))]
[DependsOn(typeof(AbpAspNetCoreMvcUiBootstrapModule), typeof(AbpMinifyModule))]
public class AbpAspNetCoreMvcUiBundlingModule : AbpModule
{

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundlerBase.cs

@ -3,9 +3,9 @@ using System.Text;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.AspNetCore.Mvc.UI.Minification;
using Volo.Abp.AspNetCore.VirtualFileSystem;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Minify;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling
{

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Scripts/ScriptBundler.cs

@ -1,6 +1,6 @@
using System;
using Volo.Abp.AspNetCore.Mvc.UI.Minification.Scripts;
using Volo.Abp.AspNetCore.VirtualFileSystem;
using Volo.Abp.Minify.Scripts;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.Scripts
{

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Styles/StyleBundler.cs

@ -1,8 +1,8 @@
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
using Volo.Abp.AspNetCore.Mvc.UI.Minification.Styles;
using Volo.Abp.AspNetCore.VirtualFileSystem;
using Volo.Abp.Minify.Styles;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.Styles
{

24
framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj

@ -0,0 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyName>Volo.Abp.Minify</AssemblyName>
<PackageId>Volo.Abp.Minify</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Volo.Abp.Core\Volo.Abp.Core.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="NUglify" Version="1.5.13" />
</ItemGroup>
</Project>

8
framework/src/Volo.Abp.Minify/Volo/Abp/Minify/AbpMinifyModule.cs

@ -0,0 +1,8 @@
using Volo.Abp.Modularity;
namespace Volo.Abp.Minify
{
public class AbpMinifyModule : AbpModule
{
}
}

7
framework/src/Volo.Abp.Minify/Volo/Abp/Minify/Html/IHtmlMinifier.cs

@ -0,0 +1,7 @@
namespace Volo.Abp.Minify.Html
{
public interface IHtmlMinifier : IMinifier
{
}
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/IMinifier.cs → framework/src/Volo.Abp.Minify/Volo/Abp/Minify/IMinifier.cs

@ -1,4 +1,4 @@
namespace Volo.Abp.AspNetCore.Mvc.UI.Minification
namespace Volo.Abp.Minify
{
public interface IMinifier
{

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/NUglifyCssMinifier.cs → framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyCssMinifier.cs

@ -1,7 +1,7 @@
using NUglify;
using Volo.Abp.AspNetCore.Mvc.UI.Minification.Styles;
using Volo.Abp.Minify.Styles;
namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.NUglify
namespace Volo.Abp.Minify.NUglify
{
public class NUglifyCssMinifier : NUglifyMinifierBase, ICssMinifier
{

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/NUglifyException.cs → framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyException.cs

@ -2,7 +2,7 @@ using System.Collections.Generic;
using System.Runtime.Serialization;
using NUglify;
namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.NUglify
namespace Volo.Abp.Minify.NUglify
{
public class NUglifyException : AbpException
{

13
framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyHtmlMinifier.cs

@ -0,0 +1,13 @@
using NUglify;
using Volo.Abp.Minify.Html;
namespace Volo.Abp.Minify.NUglify
{
public class NUglifyHtmlMinifier : NUglifyMinifierBase, IHtmlMinifier
{
protected override UglifyResult UglifySource(string source, string fileName)
{
return Uglify.Html(source, sourceFileName: fileName);
}
}
}

6
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/NUglifyJavascriptMinifier.cs → framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyJavascriptMinifier.cs

@ -1,9 +1,7 @@
using NUglify;
using NUglify.JavaScript;
using Volo.Abp.AspNetCore.Mvc.UI.Minification.Scripts;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Minify.Scripts;
namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.NUglify
namespace Volo.Abp.Minify.NUglify
{
public class NUglifyJavascriptMinifier : NUglifyMinifierBase, IJavascriptMinifier
{

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/NUglifyMinifierBase.cs → framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyMinifierBase.cs

@ -4,7 +4,7 @@ using System.Linq;
using NUglify;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.NUglify
namespace Volo.Abp.Minify.NUglify
{
public abstract class NUglifyMinifierBase : IMinifier, ITransientDependency
{

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/Scripts/IJavascriptMinifier.cs → framework/src/Volo.Abp.Minify/Volo/Abp/Minify/Scripts/IJavascriptMinifier.cs

@ -1,4 +1,4 @@
namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.Scripts
namespace Volo.Abp.Minify.Scripts
{
public interface IJavascriptMinifier : IMinifier
{

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/Styles/ICssMinifier.cs → framework/src/Volo.Abp.Minify/Volo/Abp/Minify/Styles/ICssMinifier.cs

@ -1,4 +1,4 @@
namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.Styles
namespace Volo.Abp.Minify.Styles
{
public interface ICssMinifier : IMinifier
{

26
framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/JavascriptMinifier_Tests.cs

@ -1,26 +0,0 @@
using Shouldly;
using Xunit;
namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.NUglify
{
public class NUglifyJavascriptMinifier_Tests : AbpAspNetCoreMvcUiTestBase
{
private readonly NUglifyJavascriptMinifier _nUglifyJavascriptMinifier;
public NUglifyJavascriptMinifier_Tests()
{
_nUglifyJavascriptMinifier = GetRequiredService<NUglifyJavascriptMinifier>();
}
[Fact]
public void Should_Minify_Simple_Code()
{
const string source = "var x = 5; var y = 6;";
var minified = _nUglifyJavascriptMinifier.Minify(source);
minified.Length.ShouldBeGreaterThan(0);
minified.Length.ShouldBeLessThan(source.Length);
}
}
}

16
framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj

@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.test.props" />
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Volo.Abp.Minify\Volo.Abp.Minify.csproj" />
<ProjectReference Include="..\AbpTestBase\AbpTestBase.csproj" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
</ItemGroup>
</Project>

11
framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/AbpMinifyTestModule.cs

@ -0,0 +1,11 @@
using Volo.Abp.Modularity;
namespace Volo.Abp.Minify
{
[DependsOn(
typeof(AbpMinifyModule),
typeof(AbpTestBaseModule))]
public class AbpMinifyTestModule : AbpModule
{
}
}

28
framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/NUglify/CssMinifier_Tests.cs

@ -0,0 +1,28 @@
using Shouldly;
using Volo.Abp.Minify.Styles;
using Xunit;
namespace Volo.Abp.Minify.NUglify
{
public class CssMinifier_Tests : AbpIntegratedTest<AbpMinifyModule>
{
private readonly ICssMinifier _cssMinifier;
public CssMinifier_Tests()
{
_cssMinifier = GetRequiredService<ICssMinifier>();
}
[Fact]
public void Should_Minify_Simple_Code()
{
const string source = "div { color: #FFF; }";
var minified = _cssMinifier.Minify(source);
minified.Length.ShouldBeGreaterThan(0);
minified.Length.ShouldBeLessThan(source.Length);
}
}
}

27
framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/NUglify/HtmlMinifier_Tests.cs

@ -0,0 +1,27 @@
using Shouldly;
using Volo.Abp.Minify.Html;
using Xunit;
namespace Volo.Abp.Minify.NUglify
{
public class HtmlMinifier_Tests : AbpIntegratedTest<AbpMinifyModule>
{
private readonly IHtmlMinifier _htmlMinifier;
public HtmlMinifier_Tests()
{
_htmlMinifier = GetRequiredService<IHtmlMinifier>();
}
[Fact]
public void Should_Minify_Simple_Code()
{
const string source = "<div> <p>This is <em> a text </em></p> </div>";
var minified = _htmlMinifier.Minify(source);
minified.Length.ShouldBeGreaterThan(0);
minified.Length.ShouldBeLessThan(source.Length);
}
}
}

28
framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/NUglify/JavascriptMinifier_Tests.cs

@ -0,0 +1,28 @@
using Shouldly;
using Volo.Abp.Minify.Scripts;
using Xunit;
namespace Volo.Abp.Minify.NUglify
{
public class JavascriptMinifier_Tests : AbpIntegratedTest<AbpMinifyModule>
{
private readonly IJavascriptMinifier _javascriptMinifier;
public JavascriptMinifier_Tests()
{
_javascriptMinifier = GetRequiredService<IJavascriptMinifier>();
}
[Fact]
public void Should_Minify_Simple_Code()
{
const string source = "var x = 5; var y = 6;";
var minified = _javascriptMinifier.Minify(source);
minified.Length.ShouldBeGreaterThan(0);
minified.Length.ShouldBeLessThan(source.Length);
}
}
}
Loading…
Cancel
Save