IONIC 4 中的 Ngx-translate build prod 问题

Ngx-translate build prod issues in IONIC 4

我在 ionic 4 项目中使用 ngx translate 进行翻译。但是当我尝试 运行:

ionic cordova build android -prod

引发此错误:

ERROR in Illegal State: referring to a type without a variable {"filePath":"C:/XXX/XXX/XXX/XXX/PROJECTNAME/node_modules/@ngx-translate/core/ngx-translate-core.d.ts","name":"TranslatePipe","members":[]}

[错误]运行宁子进程 ng

时发生错误

我的离子信息:

离子:

离子 CLI:5.2.7 (C:\Users\USER\AppData\Roaming\npm\node_modules\ionic) 离子框架:@ionic/angular 4.9.0 @angular-devkit/build-angular:0.801.3 @angular-devkit/schematics:8.1.3 @angular/cli:8.1.3 @ionic/angular-工具包:2.0.0

科尔多瓦:

Cordova CLI:9.0.0 (cordova-lib@9.0.1) Cordova 平台:不可用 Cordova 插件:不可用

效用:

cordova-res:0.6.0 本机-运行:0.2.8

系统:

Android SDK 工具:26.1.1 (C:\Users\USER\AppData\Local\Android\Sdk) NodeJS:v12.5.0 (C:\Program Files\nodejs\node.exe) npm:6.9.0 OS : Windows 10

请帮忙!!!

您不需要编写 -prod,因为它会将文件转换为缩小版本,因此设备难以阅读。你只需要 运行 没有 -prod

ionic cordova build android

如果您只需要发布 APK 运行

ionic cordova build android --release

在那之后,你不会遇到任何问题。

接受的答案是避免问题的解决方案,但是当需要生产构建时,情况看起来很糟糕。

实现此目的的解决方法是访问您的 tsconfig.json 并将 fullTemplateTypeCheck 禁用为 false。包括它,如果你找不到它。

"angularCompilerOptions": {
    "fullTemplateTypeCheck": false,
    ...
},

此错误实际上意味着您的组件和模块之间存在引用失败。这可能是模块或子模块等中的重复引用。这将导致忽略使所需的变量可用。在您的情况下,这是 ngx-translate 的变量(您可以在模板或组件文件中调用)。

fullTemplateTypeCheck 设置为 false 将帮助您深入了解(包括代码行)有关错误模块引用的信息。但是你必须自己修复它。通常很容易修复。如果您不确定,请再次 运行 ng build --prod --verbose 以查看有关错误关系的更多指示。