我正在编写一个带有 Node Hook 的cordova插件来运行 after_prepare 。
这仅适用于 Android。
在这个钩子(Hook)中,我需要获取cordova 包名称,以便我可以将文件复制到src/com/example/myproject 文件夹(如果包是com.example.myproject)。
如果我知道包名,我可以创建这个路径。我现在已经硬编码了它,但我需要它来处理两个不同的包名称。
有没有办法从插件钩子(Hook)的这段代码中获取包名?
module.exports = function(ctx){
var fs = ctx.requireCordovaModule('fs');
var path = ctx.requireCordovaModule('path');
var deferral = ctx.requireCordovaModule('q').defer();
//get package name here
//do other stuff
}
我做了很多研究,但没有找到这个。
谢谢。
最佳答案
它看起来不像上下文对象可用,但您可以尝试解析 config.xml。
module.exports = function(context) {
var fs = require('fs');
var path = require('path');
var config_xml = path.join(context.opts.projectRoot, 'config.xml');
var et = context.requireCordovaModule('elementtree');
var data = fs.readFileSync(config_xml).toString();
var etree = et.parse(data);
console.log(etree.getroot().attrib.id);
};
local-webserver 插件使用类似的策略来读取配置属性。
关于node.js - 从javascript钩子(Hook)获取cordova包名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42101120/