【问题标题】:What exactly happens when we do an "ionic cordova build android"?当我们执行“ionic cordova build android”时究竟会发生什么?
【发布时间】:2019-01-29 12:55:27
【问题描述】:

我知道创建了一个文件夹 - \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) 是对齐版本的正确解决方案。 所以我想从高层次了解整个构建过程

【问题讨论】:

    标签: cordova ionic-framework ionic3


    【解决方案1】:

    在为 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 是依赖管理器,它们将在安装节点模块期间管理项目依赖关系。

    【讨论】:

    • 但我注意到 config.xml 文件本身被更改是构建命令正在运行
    • @variable 有什么变化,特别是你指的是什么?
    • 例如 - 如果您从项目中删除模块、平台和插件文件夹并运行“ionic cordova build android”,您会注意到 config.xml 文件内容重新排序。看起来好像文件正在更改。
    • 是的,这是预期的行为,因为 package.json 将尝试修改 config.xml 的内容,具体取决于 package.json 中声明的依赖项
    猜你喜欢
    • 2012-06-06
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2015-10-23
    • 2013-06-13
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多