Ionic V4 - Build Prod "Не удалось найти тег сценария cordova.js. Загрузка плагина может завершиться неудачно." - PullRequest
5 голосов
/ 07 апреля 2019

В Ionic v4, когда я запускаю приложение, связанное в производственном режиме (ionic cordova build android --prod) , консоль говорит: «Не удалось найти тег сценария cordova.js.Возможно, загрузка плагина не удалась. 'и некоторые вещи приложения, такие как шрифты, выгружаются (я вижу Roboto Font, а не мой собственный шрифт).В противном случае, когда я пытаюсь скомпилировать без режима производства ** (ionic cordova build android) **, приложение работает без ошибок консоли.

My Ionic info:

ionic (Ionic CLI): 4.12.0 Ionic Framework: @ ionic / angular 4.2.0 @ angular-devkit / build-angular: 0.13.8 @ angular-devkit / schematics: 7.2.4 @ angular / cli: 7.3.8 @ ionic / angular-Инструментарий: 1.4.1

Cordova:

cordova (Cordova CLI): 8.1.2 (cordova-lib@8.1.1) Cordova Платформы: Android 7.1.4 Cordova Plugins: cordova-plugin-ionic-клавиатура 2.1.3, cordova-plugin-ionic-webview 3.1.2, (и 7 других плагинов)

Кто-нибудь также сталкивался с этой проблемой?

Приветствия,

1 Ответ

0 голосов
/ 15 июня 2019

В среде разработчика адрес - cordova.js, и файл найден.В prod имя файла хэшируется в нечто вроде cordova.4bdae3fd4f9978d7dcd8.js.

Поэтому вам нужно изменить функцию findCordovaPath () на

function findCordovaPath () {
  var path = null;
  var scripts = document.getElementsByTagName('script');
  var startterm = '/cordova.';
  var term = '/cordova.js';
  for (var n = scripts.length - 1; n > -1; n--) {
    var src = scripts[n].src.replace(/?.*$/, ''); // Strip any query param CB-6007).
    var idx = src.indexOf(startterm);
    if (idx >= 0){
      term = src.substring(idx+1);
    }
    if (src.indexOf(term) === (src.length - term.length)) {
      path = src.substring(0, src.length - term.length) + '/';
      break;
    }
  }
  return path;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...