2016-12-11 100 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