Angular 9引入了需要加载的全局'$localize()'函数
Angular 9 introduced a global '$localize()' function that needs to be loaded
我在新 angular 项目设置中遇到以下错误。
Installed Packages and its versions
ERROR Error: Uncaught (in promise): 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 add import '@angular/localize';
to your polyfills.ts file.
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.
注:我来自以下。它建议回退到旧版本。
https://github.com/angular/angular/issues/32508
你需要先确保你有@angular/localize包:
npm install @angular/localize --save
然后,import '@angular/localize/init'
在您的 polyfills.ts 文件中,就像错误所说
Angular 9引入了一个全局的$localize()函数,使用i18n需要加载
运行 ng add @angular/localize
来自 Angular CLI。
然后确保你有:
- @angular/localize
作为您应用的 package.json
的依赖项
- import '@angular/localize/init'
在你的 polyfills.ts
由于 i18n 属性现在在生成的代码中转换为 $localize 调用,我们需要加载 $localize 函数。
CLI 提供了一个示意图来为您执行此操作。只需 运行:
添加 @angular/localize
它会将包添加到您的依赖项中,并将必要的导入添加到您的 polyfill 中(导入'@angular/localize/init')
您还可以参考以下link了解更多说明。
https://blog.ninja-squad.com/2019/12/10/angular-localize/
如果您使用 Angular CLI,最好的方法是 运行
ng add @angular/localize
它会自动处理
否则
import '@angular/localize/init';
到你的 polyfills.ts
测试 Angular 9
如果您在同一个工作区中有许多 angular 个项目,运行
ng add @angular/localize
将添加导入语句 import '@angular/localize/init'
polyfills.ts 仅在默认项目中,我认为这将在以后的更新中修复。
所以你需要在其他项目中手动添加import '@angular/localize/init'
到polyfills.ts。
如果您是 运行 ng test
而以上答案不起作用,请安装软件包并添加
import "@angular/localize/init"
到polyfills-test.ts
最好的方法是使用 Angular CLI:
您只需 运行 在终端中输入以下命令:
ng add @angular/localize
它会自动安装包,还会在 polyfills.ts 文件中添加导入语句。
导入语句为:
import '@angular/localize/init';
如果您不想通过 CLI 方法,那么您可以在 polyfills.ts 文件中手动输入导入语句。
此外,您还需要再做一步,即在 dependencies 标签下的 package.json 中添加以下行。
"dependencies":{
...
"@angular/localize":"^9.1.0",
...
}
在我将具有多个子应用程序的大型 Nx/Angular CLI 应用程序升级到 Angular 10 后,此错误开始出现。错误中建议的解决方案(请 运行 ng add @angular/localize
来自 Angular CLI)如果应用程序包含多个应用程序则不起作用。每个 auto-generated 应用都有自己的 polyfill.ts
。我在每个 polyfill.ts 文件中手动添加了导入 (import '@angular/localize/init';
)。要在 运行 单元测试时修复相同的错误,我还必须在库的 test.ts 文件中添加导入。
你必须添加这个包
ng add @angular/localize
然后将 import '@angular/localize/init';
添加到您的 ployfills.ts
但是 如果您的 测试 在库中失败,您必须将 import '@angular/localize/init';
添加到您的 test.ts
运行
npm install @angular/localize --save
然后,在您的 polyfills.ts
import '@angular/localize/init'
这对我有用
因为这个问题我换了操作系统。昨天我找到了这个问题的原因。由于我在 Visual Studio 代码中安装了一个插件,我遇到了这个问题。如果您使用的是 Angular9,请不要安装前两个插件。你可以安装第三个。
对我来说,这个错误是在 运行 npm test
时出现的,所以上面的解决方案没有帮助。为了解决它,我必须在 jest.ts
文件中导入本地化。
只需添加:
import "@angular/localize/init";
我在将 Angular 版本从 12 更新到 13 时遇到此错误。我按照说明操作:
- 运行 添加@angular/localize
- 在你的 polyfills.ts
中导入 '@angular/localize/init'
但它对我不起作用。在我的模块中已经有 @angular/localize 并且在 polyfills.ts 文件中有导入,毕竟我的 Angular 12 应用程序工作正常。
为了解决这个问题,我必须更新“@ng-bootstrap/ng-bootstrap”版本。考虑到过时的@ng-bootstrap/ng-bootstrap 版本和错误描述之间没有明显的 link,我希望这个建议可以减轻一些人的头痛。
我在新 angular 项目设置中遇到以下错误。
Installed Packages and its versions
ERROR Error: Uncaught (in promise): 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 addimport '@angular/localize';
to your polyfills.ts file. 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.
注:我来自以下。它建议回退到旧版本。 https://github.com/angular/angular/issues/32508
你需要先确保你有@angular/localize包:
npm install @angular/localize --save
然后,import '@angular/localize/init'
在您的 polyfills.ts 文件中,就像错误所说
Angular 9引入了一个全局的$localize()函数,使用i18n需要加载
运行 ng add @angular/localize
来自 Angular CLI。
然后确保你有:
- @angular/localize
作为您应用的 package.json
的依赖项
- import '@angular/localize/init'
在你的 polyfills.ts
由于 i18n 属性现在在生成的代码中转换为 $localize 调用,我们需要加载 $localize 函数。
CLI 提供了一个示意图来为您执行此操作。只需 运行: 添加 @angular/localize
它会将包添加到您的依赖项中,并将必要的导入添加到您的 polyfill 中(导入'@angular/localize/init')
您还可以参考以下link了解更多说明。 https://blog.ninja-squad.com/2019/12/10/angular-localize/
如果您使用 Angular CLI,最好的方法是 运行
ng add @angular/localize
它会自动处理
否则
import '@angular/localize/init';
到你的 polyfills.ts
测试 Angular 9
如果您在同一个工作区中有许多 angular 个项目,运行
ng add @angular/localize
将添加导入语句 import '@angular/localize/init'
polyfills.ts 仅在默认项目中,我认为这将在以后的更新中修复。
所以你需要在其他项目中手动添加import '@angular/localize/init'
到polyfills.ts。
如果您是 运行 ng test
而以上答案不起作用,请安装软件包并添加
import "@angular/localize/init"
到polyfills-test.ts
最好的方法是使用 Angular CLI:
您只需 运行 在终端中输入以下命令:
ng add @angular/localize
它会自动安装包,还会在 polyfills.ts 文件中添加导入语句。
导入语句为:
import '@angular/localize/init';
如果您不想通过 CLI 方法,那么您可以在 polyfills.ts 文件中手动输入导入语句。 此外,您还需要再做一步,即在 dependencies 标签下的 package.json 中添加以下行。
"dependencies":{
...
"@angular/localize":"^9.1.0",
...
}
在我将具有多个子应用程序的大型 Nx/Angular CLI 应用程序升级到 Angular 10 后,此错误开始出现。错误中建议的解决方案(请 运行 ng add @angular/localize
来自 Angular CLI)如果应用程序包含多个应用程序则不起作用。每个 auto-generated 应用都有自己的 polyfill.ts
。我在每个 polyfill.ts 文件中手动添加了导入 (import '@angular/localize/init';
)。要在 运行 单元测试时修复相同的错误,我还必须在库的 test.ts 文件中添加导入。
你必须添加这个包
ng add @angular/localize
然后将 import '@angular/localize/init';
添加到您的 ployfills.ts
但是 如果您的 测试 在库中失败,您必须将 import '@angular/localize/init';
添加到您的 test.ts
运行
npm install @angular/localize --save
然后,在您的 polyfills.ts
import '@angular/localize/init'
这对我有用
因为这个问题我换了操作系统。昨天我找到了这个问题的原因。由于我在 Visual Studio 代码中安装了一个插件,我遇到了这个问题。如果您使用的是 Angular9,请不要安装前两个插件。你可以安装第三个。
对我来说,这个错误是在 运行 npm test
时出现的,所以上面的解决方案没有帮助。为了解决它,我必须在 jest.ts
文件中导入本地化。
只需添加:
import "@angular/localize/init";
我在将 Angular 版本从 12 更新到 13 时遇到此错误。我按照说明操作:
- 运行 添加@angular/localize
- 在你的 polyfills.ts 中导入 '@angular/localize/init'
但它对我不起作用。在我的模块中已经有 @angular/localize 并且在 polyfills.ts 文件中有导入,毕竟我的 Angular 12 应用程序工作正常。
为了解决这个问题,我必须更新“@ng-bootstrap/ng-bootstrap”版本。考虑到过时的@ng-bootstrap/ng-bootstrap 版本和错误描述之间没有明显的 link,我希望这个建议可以减轻一些人的头痛。