gpt4 book ai didi

cordova - 添加 android 平台时使用 Ionic2 更改插件 gradle 文件的位置

转载 作者:行者123 更新时间:2023-12-03 05:54:30 25 4
gpt4 key购买 nike

我有一个项目,我正在使用 Ionic2/Cordova Plugins/Android .

> mkdir stackoverflow-question
> cd stackoverflow-question
> git clone https://github.com/napolev/stackoverflow-question.git .
> npm install
> ionic platform add android
> ionic run android -l

我的问题是,当我添加 android 平台时,会创建以下目录:
/platforms/android/cordova-plugin-hash-generator

创建此目录是为了在其中保存文件: testercordovaplugins-build.gradle ,其中包含我在自己制作的一个插件中使用的一些第三方库: cordova-plugin-hash-generator .

一切都编译并运行良好。我只想更改位置,来自:
platforms/android/cordova-plugin-hash-generator

到(例如):
platforms/android/gradle/cordova-plugin-hash-generator

所以我可以对其他插件做同样的事情,防止在以下位置创建所有这些目录: platforms/android/ .仅出于组织目的。

关于如何做到这一点的任何想法?

这个基本应用程序使用我创建的插件来输出单词的 md5 摘要: hello (一些基本的东西)。

最佳答案

您不能使用 Cordova 配置来更改放置插件 gradle 文件的目录,因此您需要手动移动它,例如使用自定义钩子(Hook)脚本。

例如,如果您的插件具有:
myplugin/plugin.xml :

...
<platform name="android">
<framework src="mygradle.gradle" custom="true" type="gradleReference" />
</platform>
...

然后 Cordova 会将您的 Gradle 文件部署到 platforms/android/myplugin/mygradle.gradle .这是 Cordova 的默认行为:它将您的 gradle 文件放在以您的插件 ID 命名的目录中。

因此,如果您想将 Gradle 文件移动到其他位置(例如 /platforms/android/gradle/ ),您可以使用类似这样的钩子(Hook)脚本:
myplugin/plugin.xml :
...
<platform name="android">
<framework src="mygradle.gradle" custom="true" type="gradleReference" />
<hook src="myhook.js" type="after_plugin_install" />
</platform>
...
myplugin/myhook.js :
var myPluginId = "myplugin";

module.exports = function(ctx) {
var path = ctx.requireCordovaModule('path');
var fs = ctx.requireCordovaModule('fs');

var cwd = ctx.opts.projectRoot;
var pluginId = ctx.opts.plugin.id;

if(pluginId !== myPluginId) return;

var sourcePath = path.resolve(cwd, "platforms", "android", pluginId);
var targetPath = path.resolve(cwd, "platforms", "android", "gradle", pluginId);

fs.renameSync(sourcePath, targetPath);
};

关于cordova - 添加 android 平台时使用 Ionic2 更改插件 gradle 文件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45767050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com