Проблемы с продуктом сборки ngx-translate в IONIC 4

Я использую ngx translate для перевода в моем проекте ionic 4. Но когда я пытаюсь бежать:

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":[]}

[ERROR] Произошла ошибка при запуске подпроцесса ng

Моя ионная информация:

Ионный:

Ionic CLI: 5.2.7 (C: \ Users \ USER \ AppData \ Roaming \ npm \ node_modules \ ionic) Ionic Framework: @ 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-toolkit: 2.0.0

Кордова:

Cordova CLI: 9.0.0 ([email protected]) Платформы 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 ОС: Windows 10

Пожалуйста помоги!!!


person jfpal    schedule 22.09.2019    source источник


Ответы (3)


вам не нужно писать -prod, потому что он преобразует файл в уменьшенную версию, чтобы устройство было трудно читать. Вам просто нужно запустить без -prod

ionic cordova build android

если вы хотите, чтобы релиз APK просто запустился

ionic cordova build android --release

после этого у вас не возникнет никаких проблем.

person Hassan Ali    schedule 22.09.2019
comment
Что, если я хочу протестировать устройство в режиме воспроизведения? С помощью ionic cordova запустите android --device --prod - person jfpal; 23.09.2019
comment
Вы пытаетесь без команды --prod просто работать без нее. Все отлично. - person Hassan Ali; 23.09.2019

Принятый ответ - это решение, позволяющее избежать проблемы, но когда требуется производственная сборка, дела идут плохо.

Чтобы решить эту проблему, откройте свой tsconfig.json и отключите fullTemplateTypeCheck до false. Включите его, если не можете найти.

"angularCompilerOptions": {
    "fullTemplateTypeCheck": false,
    ...
},
person Gary Klasen    schedule 01.04.2020

Эта ошибка на самом деле означает, что среди ваших компонентов и модулей присутствует эталонный сбой. Это может быть дублирующая ссылка в модуле или субмодуле и т.п. Это приведет к тому, что необходимая переменная будет упущена. В вашем случае это переменная ngx-translate (которую вы либо вызываете в шаблоне, либо в файле компонента).

Установка fullTemplateTypeCheck на false поможет вам получить представление (включая строку кода) о ваших ложных ссылках на модули. Но вы должны исправить это сами. Обычно это легко исправить. Если вы не уверены, запустите еще раз ng build --prod --verbose, чтобы увидеть больше указаний на ложные отношения.

person feder    schedule 07.05.2020