从 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.js
和build/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 Cordova 3 迁移到 Ionic Cordova 5?
ionic v3 build IOS 上传到应用商店时出现“UIWebView”错误