2016-12-11 68 views
-1

在我的混合项目中,我有一个不需要参与apk构建的节点模块目录。在Cordova构建之前删除目录

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

+0

您需要一些帮助才能使cordova挂钩工作,或者您正在寻找脚本来删除您的目录? – Gandhi

+0

@ gandhi我需要一个钩子,但是外部脚本可能是有用的 – Sombriks

+0

你有没有尝试过使用绝对路径? – manonthemat

回答

1

我想最简单的办法是就是使用一个批处理文件,不删除不需要的目录的工作,钩科尔多瓦构建操作踢前的批处理文件英寸

有无写了一个示例脚本早些时候调用一个批处理文件,该文件从环境变量中读取变量的值,并在添加android平台之前更新config.xml文件。你可以参考下面的link中的钩子,你可以在这个扩展上使用类似的钩子在Android构建之前关闭不需要的目录。

查看此SO post了解更多有关钩子的信息。这篇文章还提供了一个在非Windows操作系统中实现钩子的解决方案。希望能帮助到你。欢呼声

+0

感谢你effrort,确实更干净的方法将涉及外部脚本而不是钩。 – Sombriks

+0

@Sombriks也感谢你的建议。干杯... – Gandhi