在Cordova构建之前删除目录

时间:2016-12-11 04:47:27

标签: javascript android cordova

在我的混合项目中,我有一个节点模块目录,不需要参与apk构造。

通过阅读cordova documentation about hooks,我最终得到了以下脚本:

#!/usr/bin/env node

// before_build_android.js

console.log("*** running before build ***");
const spawn = require('child_process').execSync;
console.log(spawn("pwd").toString("utf-8"));
console.log(spawn("rm -rf ./platforms/android/assets/www/node_modules").toString("utf-8"));
console.log("*** done ***");

在我的config.xml中,我引用了它:

<!-- ... -->
<platform name="android">
    <hook type="before_build" src="hooks/before_build_android.js"/>
    <allow-intent href="market:*" />
</platform>
<!-- ... -->

然而它不起作用。

有关如何删除此内容的任何指导,以避免将其添加到.apk文件中? node_modules太大了,我需要的是browserify生成的build.js.

1 个答案:

答案 0 :(得分:1)

我想最简单的选择是使用批处理文件来完成删除不需要的目录的工作,并在执行cordova构建操作之前挂钩批处理文件。

之前编写了一个示例脚本,它调用一个批处理文件,该文件从环境变量中读取变量的值,并在添加android平台之前更新config.xml文件。你可以在下面的link中引用钩子,你可以在这个问题上进行扩展,以便在使用类似的钩子构建android之前敲掉不需要的目录。

有关挂钩的更多信息,请查看此SO post。这篇文章还提供了在非Windows基础操作系统中实现钩子的解决方案。希望能帮助到你。干杯