Миграция с Ionic v1 на Ionic v3 или v4? - PullRequest
0 голосов
/ 13 декабря 2018

Мое приложение Ionic v1 необходимо обновить до версии v3 ... или даже версии v4.Несколько вопросов:

  1. В моем приложении v1 у меня есть корневая папка JS с app.js, controllers.js, services.js, из которых извлекаются все страницы, шаблоны.В Ionic v2-v4 я знаю, что у каждой страницы есть своя собственная папка и собственный контроллер, файлы service, template.html - мне нужно будет все разбить на части и переместить в новую структуру.Однако в моем приложении v1 у меня также есть «глобальный» файл index.js для стандартных функций JS, который я загружаю в свое приложение через основной файл index.html - функции в этом файле интенсивно используются на всех страницах / контроллерах / сервисахмоего существующего приложения.В новой структуре, куда бы я поместил этот глобальный файл "index.js" - или во что я должен преобразовать его, чтобы все функции оставались глобальными?

  2. Есть ли какой-то видМатрица, которая показывает features для v1, v2, v3 и v4 - каково преимущество в каждой версии, помимо производительности, по сравнению с предыдущей версией (вещи, которые вы можете сделать сейчас, что вы не могли сделать ранее)?

  3. Существует ли инструмент миграции JS в TS, который может помочь перенести все мои существующие JS?

  4. И, наконец, есть ли аргумент в перемещениипрямо к v3 против прямого к v4?

Всегда есть «если не сломалось, не чини».Но мне все труднее и труднее поддерживать приложение v1, сложнее добавлять новые функции, обнаруживать, что все больше и больше плагинов больше не поддерживаются, и в целом я считаю, что существует значительный прирост производительности, и теперь миграция стала необходимостью.Я просто ненавижу проходить через процесс.

1 Ответ

0 голосов
/ 13 декабря 2018

Поместите глобальный тег JS в тег заголовка src/index.html, перед build/polyfills.js и build/main.js (они находятся в теге body).

Пример: я создал файл src/assets/test.js с var testvar, импортированный в src/index.html, а затем в src/app/app.component.ts, объявленный объявить var testvar;.

test.js

var testvar = "Hello from external js";

index.html

...
      <link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico">
      <link rel="manifest" href="manifest.json">
      <meta name="theme-color" content="#4e8ef7">

      <!-- cordova.js required for cordova apps -->
      <script src="cordova.js"></script>
      <script src="assets/js/test.js"></script> //here, not in body
...

app.componet.ts

...  
declare var testvar;

    @Component({
       templateUrl: 'app.html'
    })
    export class MyApp {
      @ViewChild(Nav) nav: Nav;
      constructor(private statusbar : StatusBar,  splashScreen: SplashScreen) {
       alert(testvar);
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...