【问题标题】:Removing a directory before Cordova build在 Cordova 构建之前删除目录
【发布时间】:2017-12-16 17:38:36
【问题描述】:

在我的混合项目中,我有一个不需要参与apk构建的node modules目录。

通过阅读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。

【问题讨论】:

  • 您需要一些帮助来使 Cordova 挂钩工作,或者您正在寻找脚本来删除您的目录?
  • @gandhi 我需要一个钩子,但是外部脚本可能有用
  • 你试过用绝对路径吗?
  • @Sombriks 如果你能破解这个请告诉我

标签: javascript android cordova


【解决方案1】:

我想最简单的选择是使用一个批处理文件来删除不需要的目录并在cordova构建操作开始之前挂钩批处理文件。

之前编写了一个示例脚本,它调用一个批处理文件,该文件从环境变量中读取变量的值,并在添加 android 平台之前更新 config.xml 文件。您可以参考以下link 中的钩子,您可以对此进行扩展,以在使用类似的钩子构建 android 之前关闭不需要的目录。

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

【讨论】:

  • 感谢您的努力,确实更简洁的方法将涉及外部脚本而不是钩子。
猜你喜欢
  • 2019-10-23
  • 1970-01-01
  • 2021-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-27
相关资源
最近更新 更多