编译cordova应用程序时,/www
文件夹中的每个文件都会被复制到assets/www
文件夹(android),但我想自定义要复制的文件。我使用了几种伪语言,如CoffeeScript,Jade或Stylus,它们由我的IDE自动编译,不应该发送到最终的应用程序中。
答案 0 :(得分:6)
在this article的帮助下,我发现您可以创建/编辑platform/android/ant.properties
,并在其中添加以下行:
aapt.ignore.assets=!*.map:!thumbs.db:!.git:.*:*~
使用此行,匹配其中一种模式的文件或目录将不会包含在.apk文件中:
*.map
thumbs.db
.git
.*
*~
我发现编辑platforms/android/build.xml
无法正常工作,因为每次调用构建时都会覆盖它;另外,在项目的根目录中创建build.xml
文件并不起作用。
此属性的规则如下,取自$ANDROID_HOME/tools/ant/build.xml
:
<!-- 'aapt.ignore.assets' is the list of file patterns to ignore under /res and /assets.
Default is "!.svn:!.git:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"
Overall patterns syntax is:
[!][<dir>|<file>][*suffix-match|prefix-match*|full-match]:more:patterns...
- The first character flag ! avoids printing a warning.
- Pattern can have the flag "<dir>" to match only directories
or "<file>" to match only files. Default is to match both.
- Match is not case-sensitive.
-->
<property name="aapt.ignore.assets" value="" />
答案 1 :(得分:3)
构建时会忽略所有隐藏文件和文件夹,例如.git/
&amp; .gitignore
隐藏:通过文件夹/文件名前面的.
(点)重命名文件夹。
要在开始时使用。(点)重命名文件夹,您可能需要CLI
在Linux / Mac中使用终端重命名文件夹。
mv dev .dev
在Windows中使用cmd
ren dev .dev
答案 2 :(得分:2)
我不知道如何过滤cordova的文件,但我可以描述一下我们在项目中使用的方法。
我们正在使用gruntjs和phonegap插件。我们将其配置为使用预建文件夹(仅包含必要的文件和文件夹)和它:
这种方法的主要内容是cordova / phonegap项目(带有.cordova,平台和www文件夹的目录)只是一个构建工件。
以下是 Gruntfile.js 的相关部分作为示例:
phonegap : {
config : {
root : './out/dist',
config : {
template : './config.tpl.xml',
data: {
id: pkg.id,
version: pkg.version,
name: pkg.name,
author : pkg.author
}
},
path : 'out/phonegap',
plugins : [
// PHONEGAP OFFICIAL PLUGINS
'org.apache.cordova.globalization',
'org.apache.cordova.network-information',
'org.apache.cordova.splashscreen',
//THIRD-PARTY PLUGINS
'de.appplant.cordova.plugin.local-notification'
],
platforms : [
'android'
],
maxBuffer : 200, // You may need to raise this for iOS.
verbose : false,
releases : 'out/releases',
releaseName : function() {
return pkg.name + '-v' + pkg.version;
},
// Android-only integer version to increase with each release.
// See http://developer.android.com/tools/publishing/versioning.html
versionCode : function() {
return 1;
}
}
}
注意,out / dist是由上一个构建步骤生成的,包含连接和缩小版本的代码。
答案 3 :(得分:1)
我创建了一个自定义脚本来忽略不仅适用于android的文件/文件夹:
将此添加到 config.xml :
<ignore entries="lang,foo/bar,ignore/asdf.html" />
您需要two more files位于hooks / before_build 和 hooks / after_build 文件夹中。
答案 4 :(得分:1)
我强烈推荐cordova-plugin-exclude-files。您只需指定要在exclude-files
文件中排除config.xml
个.scss
标记属性的文件。
例如,要排除所有<exclude-files pattern="**/*.scss" />
个文件:
<platform name="android"> <exclude-files pattern="ios-only" /> </platform>
并且仅在Android平台上排除字符串“仅限ios”的所有文件:
db_file_names = ['f1', 'f2'] # list of database files def make_report(filename): # read the database and prepare some report object return report_object
答案 5 :(得分:0)