提问人:Christian 提问时间:11/16/2023 最后编辑:Christian 更新时间:11/23/2023 访问量:75
NX Serve 忽略导入“@angular/localize/init”
nx serve is ignoring import of "@angular/localize/init"
问:
我正在尝试在我的项目中实现,该项目是 Nx 工作区的一部分 ([email protected])。我正在遵循官方指南:https://angular.io/guide/i18n-overview@angular/localize
具体来说,我
安装了与我当前 Angular 版本一致的版本的版本
@angular/[email protected]
添加到我的polyfills.ts
import '@angular/localize/init'
添加到我的main.ts
/// <reference types="@angular/localize" />
将 i18n 配置添加到我的项目配置中:
"i18n": { "sourceLocale": "en", "locales": { "de": { "translation": "apps/web/login/src/locale/messages.de.xlf" } } }
配置了构建目标
... "aot": true, "localize": ["de"] ...
当我这个项目时,我希望我的字符串本地化为 .但是,我收到以下错误nx serve
de
错误:您的应用程序或其依赖项之一似乎正在使用 i18n。 Angular 9 引入了一个需要加载的全局函数。 请从 Angular CLI 运行。 (对于非 CLI 项目,请添加到您的文件中。
$localize()
ng add @angular/localize
import '@angular/localize/init';
polyfills.ts
当我检查我的 polyfills.js bundle 文件时,我看到 webpack 显然忽略了它的导入,这解释了应用程序中缺少的 $localize 函数。@angular/localize/init
...
/***/ 85028:
/*!****************************************!*\
!*** @angular/localize/init (ignored) ***!
\****************************************/
/***/ (() => {
/* (ignored) */
/***/ }),
...
我怎样才能让 webpack 不忽略这个导入并让它工作?
使用提取标签效果很好。@angular-devkit/build-angular:extract-i18n
我尝试重新安装 node_module以确保版本正确,并查找了 github 问题以找到答案 - 没有成功
答:
郑重声明:我遇到了一个问题,即过时的browserslist配置阻止了它的工作:https://github.com/angular/angular/issues/48194
基本上我已经配置了,而 angular 官方只支持最新的两个主要版本。我把它改成了,现在一切正常。safari >= 12
safari >= 15
我只花了 7 天的时间研究......
评论