我正在编写一个带有 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/

10-10 21:30