当我们做一个“离子cordova构建Android”时,究竟发生了什么?

时间:2019-01-29 12:55:27

标签: cordova ionic-framework ionic3

我知道创建了一个文件夹-\ platform \ android。

我想从config.xml,package.json,package-lock.json和其他重要文件的角度理解;在构建过程中如何使用或影响这些文件。

假定仅使用代码从版本控制系统下载了项目。没有插件文件夹,没有平台文件夹,没有模块文件夹。当我们做一个“离子cordova构建Android”时,究竟发生了什么?离子文件控制或推断是哪个文件来安装插件?

问这个问题的原因是我在解决插件依赖性问题时遇到了很多困难,这些问题我试图通过在config.xml文件中编辑插件版本来解决,但是在运行build命令后它被覆盖为原始值。同样,package.json文件。唯一帮助我的是更改插件版本\ platform \ android \ project.properties文件或\ plugin \ plugin-name \ plugin.xml文件(在“首选项”部分下)。但是这些解决方案并不好,因为这些文件没有签入版本控制中,因此每个开发人员都必须进行这些修改。最终gradle(cordova-android-play-services-gradle-release)是对齐版本的正确解决方案。 所以我想从高层次了解整个构建过程

1 个答案:

答案 0 :(得分:1)

在为Android平台构建时会发生几件事。

  • Ionic-app-scripts使用您的代码构建一个Web项目,并将其填充在 / www 文件夹下。
  • 现在 config.xml 中列出的插件将从其源存储库中下载,并且将在 / platforms 下创建一个android项目。 / plugins 将具有从其资源下载的插件资源的副本。
  • 创建的Android项目将是一个WebView项目,其中仅包含一个名为MainActivity.java的Main Java文件,该文件将应用程序(由ionic-app-scripts创建的Web应用程序)加载到webview中。

这里 package.json package-lock.json 是依赖项管理器,它们将在安装节点模块期间管理项目依赖项。