Angular AOT с экземпляром JIT-компилятора - PullRequest
0 голосов
/ 27 мая 2020

У меня возникла проблема при попытке скомпилировать внешний модуль в мое приложение angular.

Каждый внешний модуль упакован в файл *. js (проект встроенной библиотеки), которые загружаются до запускается основное приложение (с использованием поставщика APP_INITIALIZER). Все эти файлы импортируются через System JS.

Я знаю, что компиляция модуля с компилятором AOT во время выполнения невозможна, если вы используете экземпляр Compiler

this._compiler.compileModuleSync(pluginModule)

, поэтому я попытался импортировать экземпляр JitCompiler в мой AppModule:

{
  provide: COMPILER_OPTIONS,
  useValue: {},
  multi: true
},
{
  provide: CompilerFactory,
  useClass: JitCompilerFactory,
  deps: [COMPILER_OPTIONS]
},
{
  provide: Compiler,
  useFactory: createCompiler,
  deps: [CompilerFactory]
},

и функцию экспорта:

export function createCompiler(fn: CompilerFactory): Compiler {
   return fn.createCompiler();
}

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

У меня больше нет идей, как скомпилировать среду выполнения модуля с помощью AOT? Есть ли способ создать / сгенерировать экземпляр NgModuleFactory?

В настоящее время переключен обратно на JIT-компилятор, что является наихудшим решением: (

Thanx!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...