diff --git a/README.md b/README.md index e63cd4a..f90e817 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ First of all, you need to install the [JavaScriptEngineSwitcher.Extensions.MsDep Then you need to install one of the NuGet packages containing a JS engine provider: * [JavaScriptEngineSwitcher.ChakraCore](https://nuget.org/packages/JavaScriptEngineSwitcher.ChakraCore) - * [JavaScriptEngineSwitcher.Jint](https://www.nuget.org/packages/JavaScriptEngineSwitcher.Jint) (prerelease versions only) + * [JavaScriptEngineSwitcher.Jint](https://www.nuget.org/packages/JavaScriptEngineSwitcher.Jint) * [JavaScriptEngineSwitcher.Msie](https://nuget.org/packages/JavaScriptEngineSwitcher.Msie) (only in the Chakra “Edge” JsRT mode) * [JavaScriptEngineSwitcher.V8](https://nuget.org/packages/JavaScriptEngineSwitcher.V8) @@ -37,7 +37,11 @@ public void ConfigureServices(IServiceCollection services) services.AddMvc(); // Add JavaScriptEngineSwitcher services to the services container. - services.AddJsEngineSwitcher(options => options.DefaultEngineName = V8JsEngine.EngineName) + services.AddJsEngineSwitcher(options => + { + options.AllowCurrentProperty = false; + options.DefaultEngineName = V8JsEngine.EngineName; + }) .AddV8() ; diff --git a/sample/WebOptimizer.Sass.Sample/Startup.cs b/sample/WebOptimizer.Sass.Sample/Startup.cs index 72afca5..056d337 100644 --- a/sample/WebOptimizer.Sass.Sample/Startup.cs +++ b/sample/WebOptimizer.Sass.Sample/Startup.cs @@ -1,4 +1,3 @@ -using JavaScriptEngineSwitcher.Core; using JavaScriptEngineSwitcher.Extensions.MsDependencyInjection; using JavaScriptEngineSwitcher.V8; using Microsoft.AspNetCore.Builder; @@ -16,7 +15,11 @@ public void ConfigureServices(IServiceCollection services) services.AddRazorPages(); // Add JavaScriptEngineSwitcher services to the services container. - services.AddJsEngineSwitcher(options => options.DefaultEngineName = V8JsEngine.EngineName) + services.AddJsEngineSwitcher(options => + { + options.AllowCurrentProperty = false; + options.DefaultEngineName = V8JsEngine.EngineName; + }) .AddV8() ; diff --git a/sample/WebOptimizer.Sass.Sample/WebOptimizer.Sass.Sample.csproj b/sample/WebOptimizer.Sass.Sample/WebOptimizer.Sass.Sample.csproj index 4e40302..1739d0d 100644 --- a/sample/WebOptimizer.Sass.Sample/WebOptimizer.Sass.Sample.csproj +++ b/sample/WebOptimizer.Sass.Sample/WebOptimizer.Sass.Sample.csproj @@ -5,16 +5,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/src/Compiler.cs b/src/Compiler.cs index b3ef3ff..3223d7e 100644 --- a/src/Compiler.cs +++ b/src/Compiler.cs @@ -1,4 +1,5 @@ using DartSassHost; +using JavaScriptEngineSwitcher.Core; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.WebUtilities; @@ -53,7 +54,10 @@ public Compiler(IAsset asset, WebOptimizerScssOptions options = null) public Task ExecuteAsync(IAssetContext context) { var content = new Dictionary(); - var env = (IWebHostEnvironment)context.HttpContext.RequestServices.GetService(typeof(IWebHostEnvironment)); + var serviceProvider = context.HttpContext.RequestServices; + var env = (IWebHostEnvironment)serviceProvider.GetService(typeof(IWebHostEnvironment)); + var engineSwitcher = (IJsEngineSwitcher)serviceProvider.GetService(typeof(IJsEngineSwitcher)); + IFileProvider fileProvider = context.Asset.GetFileProvider(env); var settings = new CompilationOptions(); @@ -83,7 +87,7 @@ public Task ExecuteAsync(IAssetContext context) fileManager = new ManifestFileManager(fileProvider); } - using (var sassCompiler = new SassCompiler(fileManager, settings)) + using (var sassCompiler = new SassCompiler(engineSwitcher.CreateDefaultEngine, fileManager, settings)) { foreach (string route in context.Content.Keys) { diff --git a/src/PipelineExtensions.cs b/src/PipelineExtensions.cs index 3d4c1ba..28a7a57 100644 --- a/src/PipelineExtensions.cs +++ b/src/PipelineExtensions.cs @@ -112,6 +112,11 @@ private static IAsset minifyCssWithOptions(this IAsset asset, WebOptimizerScssOp private static void CheckJsEngineRegistration() { + if (!JsEngineSwitcher.AllowCurrentProperty) + { + return; + } + IJsEngineSwitcher engineSwitcher = JsEngineSwitcher.Current; if (engineSwitcher == null || !engineSwitcher.EngineFactories.Any(e => e.EngineName == engineSwitcher.DefaultEngineName)) diff --git a/src/WebOptimizer.Sass.csproj b/src/WebOptimizer.Sass.csproj index 3776b47..cf7a2c3 100644 --- a/src/WebOptimizer.Sass.csproj +++ b/src/WebOptimizer.Sass.csproj @@ -25,7 +25,8 @@ - + + diff --git a/test/CompilerTest.cs b/test/CompilerTest.cs index c3f9031..bbfd74f 100644 --- a/test/CompilerTest.cs +++ b/test/CompilerTest.cs @@ -46,6 +46,9 @@ public async Task Compile_Success() context.Setup(s => s.HttpContext.RequestServices.GetService(typeof(IWebHostEnvironment))) .Returns(env.Object); + context.Setup(s => s.HttpContext.RequestServices.GetService(typeof(IJsEngineSwitcher))) + .Returns(JsEngineSwitcher.Current); + var inputFile = new PhysicalFileInfo(new FileInfo("site.css")); context.SetupGet(s => s.Asset) diff --git a/test/WebOptimizer.Sass.Test.csproj b/test/WebOptimizer.Sass.Test.csproj index 3b6d01b..0506da3 100644 --- a/test/WebOptimizer.Sass.Test.csproj +++ b/test/WebOptimizer.Sass.Test.csproj @@ -7,7 +7,7 @@ - +