首页 > 解决方案 > 当我们执行“ionic cordova build android”时究竟会发生什么?

问题描述

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

我想从config.xml、package.json、package-lock.json等重要文件的角度来理解;作为构建过程的一部分,这些文件是如何使用或影响的。

假设项目是从版本控制系统下载的,只有代码。没有插件文件夹,没有平台文件夹,没有模块文件夹。当我们执行“ionic cordova build android”时究竟会发生什么?ionic cordova 控制或推断哪个文件来安装插件?

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

标签: cordovaionic-frameworkionic3

解决方案


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

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

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


推荐阅读