Ionic framework 爱奥尼亚4中Ngx翻译构建产品问题

Ionic framework 爱奥尼亚4中Ngx翻译构建产品问题,ionic-framework,ionic4,ngx-translate,Ionic Framework,Ionic4,Ngx Translate,我在爱奥尼亚4项目中使用ngx翻译。但当我尝试跑步时: 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":"Transla

我在爱奥尼亚4项目中使用ngx翻译。但当我尝试跑步时:

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\u modules\爱奥尼亚) 离子骨架:@Ionic/angular 4.9.0 @角度开发套件/构建角度:0.801.3 @角度devkit/示意图:8.1.3 @角度/cli:8.1.3 @离子/角度工具包:2.0.0

科尔多瓦:

Cordova CLI:9.0.0(Cordova-lib@9.0.1) 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) 净现值:6.9.0 操作系统:Windows 10


请帮忙

您不需要write-prod,因为它会将文件转换为小型版本,从而使设备难以读取。你只需要在没有刺激的情况下跑步

ionic cordova build android
如果您想要发布APK,只需运行

ionic cordova build android --release

之后,您就不会面临任何问题。

您不需要编写-prod,因为它会将文件转换为小型版本,从而使设备难以读取。你只需要在没有刺激的情况下跑步

ionic cordova build android
如果您想要发布APK,只需运行

ionic cordova build android --release

在那之后,你不会面临任何问题。

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

解决方法是访问
tsconfig.json
并将
fullTemplateTypeCheck
禁用为false。如果您找不到,请将其包括在内

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

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

解决方法是访问
tsconfig.json
并将
fullTemplateTypeCheck
禁用为false。如果您找不到,请将其包括在内

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

此错误实际上意味着组件和模块之间存在引用故障。这可以是模块或and子模块或任何类似模块中的双重引用。这将导致ommiting以提供所需的变量。在您的例子中,这是ngx translate的变量(在模板或组件文件中调用)


fullTemplateTypeCheck
设置为false将帮助您获得有关错误模块引用的详细信息(包括代码行)。但你必须自己修理。通常是一个容易解决的问题。如果不确定,请再次运行
ng build--prod--verbose
,查看有关错误关系的更多指示。

此错误实际上意味着组件和模块之间存在引用故障。这可以是模块或and子模块或任何类似模块中的双重引用。这将导致ommiting以提供所需的变量。在您的例子中,这是ngx translate的变量(在模板或组件文件中调用)


fullTemplateTypeCheck
设置为false将帮助您获得有关错误模块引用的详细信息(包括代码行)。但你必须自己修理。通常是一个容易解决的问题。如果您不确定,请再次运行
ng build--prod--verbose
,查看有关错误关系的更多指示。

如果我想在prod模式下的设备上进行测试,该怎么办?使用ionic cordova运行android--device--prod您可以尝试不使用--prod命令而不使用它。一切正常。如果我想在prod模式下的设备上进行测试,该怎么办?使用ionic cordova运行android--device--prod您可以尝试不使用--prod命令而不使用它。一切都很好。