[英]Cordova Build - ignore files
编译cordova应用程序时,我/www
文件夹中的每个文件都被复制到assets/www
文件夹(android),但我想自定义要复制的文件。 我使用了几种伪语言,如CoffeeScript,Jade或Stylus,它们由我的IDE自动编译,不应该发送到最终的应用程序中。
在本文的帮助下,我发现您可以创建/编辑platform/android/ant.properties
,并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="" />
构建时将忽略所有隐藏文件和文件夹,例如.git/
.gitignore
隐藏:用a重命名文件夹.
(点)前置于文件夹/文件名。
要在开始时使用。(点)重命名文件夹,您可能需要CLI
在Linux / Mac中使用终端重命名该文件夹。
mv dev .dev
在Windows中使用cmd
ren dev .dev
我不知道如何过滤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由先前的构建步骤生成,并包含连接和缩小版本的代码。
我创建了一个自定义脚本来忽略不仅适用于android的文件/文件夹:
将其添加到config.xml :
<ignore entries="lang,foo/bar,ignore/asdf.html" />
而且你还需要两个位于hooks / before_build和hooks / after_build文件夹中的文件。
我强烈推荐cordova-plugin-exclude-files 。 您只需指定要排除的文件作为config.xml
文件中exclude-files
标记的pattern
属性。
例如,要排除所有.scss
文件:
<exclude-files pattern="**/*.scss" />
并且仅在Android平台上排除字符串“仅限ios”的所有文件:
<platform name="android"> <exclude-files pattern="ios-only" /> </platform>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.