BundleTransformer更少抱怨“无法找到工厂,创建JavaScript引擎的实例”

时间:2016-10-09 02:44:23

标签: asp.net bundletransformer

如果从BundleTransformer的版本1升级到版本2,您可能会收到以下消息:

  

无法找到创建JavaScript实例的工厂   名为MsieJsEngine的引擎。

像我一样,你可能甚至没有意识到你升级的不仅仅是一个点发布。

如何解决?

2 个答案:

答案 0 :(得分:13)

版本2不再使用WEB.CONFIG进行配置

首先删除它并阅读本链接的其余部分

https://github.com/Taritsyn/JavaScriptEngineSwitcher/wiki/How-to-upgrade-applications-to-version-2.X

基本上你会做以下事情:

  • 删除javscript引擎的现有web.config节点
  • 向global.asax添加一些初始化代码
  • 为您要使用的引擎安装Nuget包
  • 确保添加using语句以便能够使用扩展方法(如果您选择这种方式)

我最终得到了类似的东西:

    using JavaScriptEngineSwitcher.Core;
    using JavaScriptEngineSwitcher.Msie;
    using JavaScriptEngineSwitcher.V8;

    ....

    public class JsEngineSwitcherConfig
    {
        public static void Configure(JsEngineSwitcher engineSwitcher)
        {
            engineSwitcher.EngineFactories
                .AddMsie(new MsieSettings
                {
                    UseEcmaScript5Polyfill = true,
                    UseJson2Library = true
                })
                .AddV8();

            engineSwitcher.DefaultEngineName = MsieJsEngine.EngineName;
        }
   }

答案 1 :(得分:1)

我按照说明操作,但我的代码现在在BundleConfig上打破了

var cssTransformer = new StyleTransformer();

  

name配置元素的/configuration/bundleTransformer/less/jsEngine属性中未指定JavaScript引擎的名称。

     

如果您尚未安装JavaScript引擎,那么正确工作   建议使用此模块安装以下NuGet之一   包:* JavaScriptEngineSwitcher.Msie *   JavaScriptEngineSwitcher.V8 * JavaScriptEngineSwitcher.ChakraCore

     

安装软件包后,需要设置一个JavaScript引擎的名称(for   例如,MsieJsEngine)到name属性   /configuration/bundleTransformer/less/jsEngine配置   元件。