从 Ionic v1 迁移到 Ionic v3 或 v4?

Posted

技术标签:

【中文标题】从 Ionic v1 迁移到 Ionic v3 或 v4?【英文标题】:Migrating from Ionic v1 to Ionic v3 or v4? 【发布时间】:2019-05-14 17:27:51 【问题描述】:

我的 Ionic v1 应用需要升级到 v3...甚至 v4。几个问题:

    在我的 v1 应用程序中,我有一个根 JS 文件夹,其中包含 app.js、controllers.js、services.js,所有页面、模板都从中提取。我知道离子 v2-v4,每个页面都有自己的文件夹和自己的 控制器、服务、模板.html 文件 - 我需要将所有内容分开并将其移动到新结构中。但是,在我的 v1 应用程序中,我也 有一个我加载的标准 JS 函数的“全局”index.js 文件 通过主 index.html 文件进入我的应用程序 - 此文件中的函数在所有内容中都被大量使用 我现有应用程序的页面/控制器/服务。在新的结构中, 我应该把这个全局“index.js”文件放在哪里 - 或者,我应该怎么做 将其转换为使所有函数保持全局?

    是否有某种矩阵显示 v1、v2、v3 和 v4 的 features - 除了性能之外,每个版本的增益是多少 以前的版本(现在可以做但不能做的事情 之前)?

    有没有 JS 到 TS 的迁移工具可以帮助迁移我现有的所有 JS?

    最后,直接迁移到 v3 与直接迁移到 v4 有什么争论吗?

总是有“如果它没有坏就不要修复它”。但是我发现维护我的 v1 应用程序越来越难,添加新功能越来越困难,发现越来越多的插件不再受支持,总的来说,我相信迁移现在已经成为一种必要的重大性能提升。我只是讨厌必须经历这个过程。

【问题讨论】:

请尝试一次只问一个问题,否则将很难回答,也很难搜索确切的问题... 关于您的问题:有moving to v2 和moving to v4 的迁移指南。他们通常会比较功能并指导您进行迁移。据我所知,没有工具可以做到这一点(正如您已经指出的那样,结构上的变化使自动化变得困难) 最后,我建议不要直接迁移到 v4,只要它仍处于测试阶段...我要么等到 v4 发布第一个稳定版本,要么迁移到已经稳定的 v4。您可以查看最新版本here。 【参考方案1】:

将全局JS标签放在src/index.html头标签中,在build/polyfills.jsbuild/main.js之前(它们在body标签中)。

示例:我创建了一个带有var testvar 的文件src/assets/test.js,在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);
...

【讨论】:

以上是关于从 Ionic v1 迁移到 Ionic v3 或 v4?的主要内容,如果未能解决你的问题,请参考以下文章

至少努力从 Ionic 迁移到 NativeScript

如何将 Ionic Cordova 3 迁移到 Ionic Cordova 5?

无法配置 ionic v1 现有项目

ionic v3 build IOS 上传到应用商店时出现“UIWebView”错误

基于Ionic Cordova的应用程序的GCM到FCM迁移步骤

Ionic 1.x - 从凉亭到 npm