【问题标题】:Angular $localize error after updating from version 14 to 15从版本 14 更新到 15 后出现 Angular $localize 错误
【发布时间】:2023-02-09 02:47:37
【问题描述】:

从版本更新我们的 Angular 应用程序后14.0.4版本15.1.3(之前也尝试过 15.1.2)我们在尝试访问应用程序时收到以下错误:

Uncaught Error: It looks like your application or one of its dependencies is using i18n. 
Angular 9 introduced a global `$localize()` function that needs to be loaded.
Please run `ng add @angular/localize` from the Angular CLI.
(For non-CLI projects, add `import '@angular/localize/init';` to your `polyfills.ts` file.
For server-side rendering applications add the import to your `main.server.ts` file.)

所以问题是,我们在许多更新之前就已经完成了这些步骤。从描述中也可以看出,这是某事。在版本 9 中引入。但我们正在运行版本 14(及更早版本),没有任何此类问题。该应用程序编译没有错误,这是一个运行时错误。

我还尝试在版本更新后重新运行提到的命令 ng add @angular/localize,它只是将 @angular/localize 添加到 tsconfig 中的类型数组,但它仍然失败并出现相同的错误。

我按照推荐的角度更新网站 (https://update.angular.io/?l=3&v=14.0-15.0) 进行了更新,并将所有其他共同依赖项更新为最新版本(如材料、NgRx、打字稿等)

我们直接在组件中使用$localize,例如:

 private readonly onLabel = $localize`:@@common_onLabel:`;

或者也以这样的共享方式:

export const i18nD = $localize`:@@components_timeDisplay_shortDaysFormat:` as 'd';

我将不胜感激我可以尝试的任何想法或步骤,因为我已经没有下一步要尝试的想法了。

【问题讨论】:

    标签: angular typescript angular15


    【解决方案1】:

    看起来在最近的版本中,他们使用不同的系统来包含全局 $localize 函数。
    它不再依赖 polyfill,而是在 TS 编译器配置 types 数组项中查找 @angular/localize 的存在。
    https://github.com/angular/angular-cli/pull/24032

    尝试重新发布原理图以添加 $localize

    ng add @angular/localize
    

    或在您的tsconfig.json 或您的项目使用的任何 TS 配置文件中手动添加类型路径。

    {
      "compilerOptions": {
        ...
        "types": ["@angular/localize"]  
      }
      ...
    }
    

    【讨论】:

      猜你喜欢
      • 2023-02-13
      • 2022-11-18
      • 1970-01-01
      • 2020-05-25
      • 2022-12-29
      • 2023-02-06
      • 1970-01-01
      • 2022-08-17
      • 2020-06-02
      相关资源
      最近更新 更多