Система не определена с помощью динамического импорта в angular 13

#javascript #angular #typescript #angular12 #angular13

Вопрос:

У меня ниже приведен код для динамической загрузки локализаций

 declare var System; let angularLocale = convertAbpLocaleToAngularLocale(abp.localization.currentLanguage.name);  System.import(`@angular/common/locales/${angularLocale}.js`)  .then(module =gt; {  registerLocaleData(module.default);  NgxBootstrapDatePickerConfigService.registerNgxBootstrapDatePickerLocales().then(_ =gt; {  resolve(true);  abp.ui.clearBusy();  });  }, reject);  

Если я не использую систему, команда сборки создает исключение в виде

 Module not found: Error: Package path ./locales is not exported from package ....node_modules@angularcommon (see exports field in .....node_modules@angularcommonpackage.json)  

Если я использую систему, я получаю исключение в консоли браузера, как

 core.mjs:6495     ERROR Error: Uncaught (in promise): ReferenceError: System is not defined ReferenceError: System is not defined  at registerLocales (root.module.ts:193)  at root.module.ts:64  at ZoneDelegate.invoke (zone.js:400)  at Object.onInvoke (core.mjs:25877)  at ZoneDelegate.invoke (zone.js:399)  at Zone.run (zone.js:160)  at zone.js:1318  at ZoneDelegate.invokeTask (zone.js:434)  at Object.onInvokeTask (core.mjs:25864)  at ZoneDelegate.invokeTask (zone.js:433)  at resolvePromise (zone.js:1255)  at zone.js:1325  at ZoneDelegate.invokeTask (zone.js:434)  at Object.onInvokeTask (core.mjs:25864)  at ZoneDelegate.invokeTask (zone.js:433)  at Zone.runTask (zone.js:205)  at drainMicroTaskQueue (zone.js:620)  

Комментарии:

1. Вы объявили систему как переменную, она должна быть импортирована как импорт { System } из «системы»;

Ответ №1:

У меня была та же проблема с «Модулем не найден». В приложении мы используем i18n. Теперь я получаю страну из i18n, а затем устанавливаю локаль для трубы, ведьма хранит эту информацию. Так что мне больше не нужна динамическая модульная загрузка. Может быть, это вам поможет?