Angular 13 Не удается найти модуль '@angular/common/locales/fr.js'

Я перешел с углового 12 на угловой 13, и у меня возникла новая ошибка. Так что в основном я загружал культуру пользователя, импортируя файл локали.

       const localeUri = `@angular/common/locales/${localeId}.js`;
return import(localeUri).then((module) => {
    logger.debug("Culture Angular : '" + localeId + "'");
    registerLocaleData(module.default);
}).catch((err) => {
    logger.fatal("culture not defined for angular", err);
});

Это решение используется для работы с angular12, но не с angular13. Webpack не может найти ни одной локали. Я пробовал некоторые решения, найденные на github, но без каких-либо положительных результатов
https://github.com/highlightjs/highlight.js/issues/3223#issuecomment-953337602

https://github.com/angular/angular-cli/issues/22154

Любое решение?

3 ответа

Удалось заставить его работать, изменив путь, из которого мы импортируем, и изменив .jsк .mjs

До:

      import(
  /* webpackInclude: /(de|de-AT|en|en-GB)\.js$/ */
  `@angular/common/locales/${locale}.js`
).then((module) => {
  registerLocaleData(module.default);
});

После:

      import(
  /* webpackInclude: /(de|de-AT|en|en-GB)\.mjs$/ */
  `../../../../../../node_modules/@angular/common/locales/${locale}.mjs`
).then((module) => {
  registerLocaleData(module.default);
});

Использование Angular 13.1.1 и NX 13.4.2

Здесь уже упоминалось решение: https://github.com/angular/angular-cli/issues/22154 .

Недавно я перешел на Angular 13. Я также столкнулся с той же проблемой. Изменения ниже работали для меня.

      import(`@/../@angular/common/locales/${lang}.mjs`)
.then(localModule => {
          registerLocaleData(localModule.default)
});

Вы должны импортировать из @angular/common/locales/global/сейчас и registerLocaleDataбольше не нужен.

До Углового 13:

      import { registerLocaleData } from '@angular/common';
import localeFr from '@angular/common/locales/fr';

registerLocaleData(localeFr, 'fr-FR');

С угловым 13:

      import '@angular/common/locales/global/fr';

// and you can use fr-FR whenever you want
Другие вопросы по тегам