BundleTransformer для меньше жалоб «Не удалось найти фабрику, которая создает экземпляр движка JavaScript»

#asp.net #bundletransformer

#asp.net #bundletransformer

Вопрос:

Если вы обновите BundleTransformer с версии 1 до версии 2, вы можете получить это сообщение:

Не удалось найти фабрику, которая создает экземпляр движка JavaScript с именем MsieJsEngine .

Как и я, вы, возможно, даже не поняли, что обновили больше, чем просто точечный релиз.

Как исправить?

Ответ №1:

Версия 2 НЕ ИСПОЛЬЗУЕТ WEB.КОНФИГУРАЦИЯ для конфигурации больше

Итак, начните с удаления его и прочитайте остальную часть этой ссылки

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


В основном вы будете делать следующее:

  • Удаление существующих узлов web.config для движка javscript
  • Добавление в какое-то место, например, в 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;
        }
   }
  

Ответ №2:

Я следую инструкциям, но мой код теперь ломается в BundleConfig

var cssTransformer = новый StyleTransformer();

В name атрибуте элемента /configuration/bundleTransformer/less/jsEngine конфигурации не указано имя движка JavaScript.

Если у вас не установлен JavaScript engine, то для корректной работы этого модуля рекомендуется установить один из следующих пакетов NuGet: * JavaScriptEngineSwitcher.Msie * JavaScriptEngineSwitcher.V8 * JavaScriptEngineSwitcher.ChakraCore

После установки пакета необходимо установить имя движка JavaScript (например, MsieJsEngine ) в name атрибут элемента /configuration/bundleTransformer/less/jsEngine конфигурации.