Alloy 的编译过程 (很好的解释了Resources 这个目录的由来) ( alloy compile process)
访问量: 2483
Alloy的编译过程分成如下几个步骤:
1. 清空之前生成的文件
2. 加载配置文件。 alloy.jmk
3. 复制文件,以 Android平台为例子:
1. 把所有的文件,复制到 Resources/android/alloy 目录下。
2. 把 alloy.js ,复制到 Resources 目录
3. 把配置文件 config.js 复制成为 Resources/android/alloy/CFG.js
4. 把assets, lib 目录下的 文件,复制到 Resources 目录下。
4. 编译 model 文件,放到 Resources/android/alloy/modes 目录下
5. 编译 widget文件, 放到 Resources/android/alloy/widget 目录下。
6. 编译 controller (.js) , view(.xml) , style(.tss) 文件,把这三种文件合并成一种 .js controller的文件。 ( <Button/> 变成 Ti.UI.createButton()... 这样的形式) , 放到 Resources/android/alloy/controllers 目录下。
7. Main Application 入口文件: 生成 app.js文件,这个文件 :
0. 会包含需要的模块(require modules)
1. 包含了 alloy.js 的内容。
2. 会调用 index.js 这个默认起始文件。
(这里还有一个 hook method, compile:app.js , 如果它存在于 jmk配置文件中的话,也会被执行,然后这个生成的app.js文件才会被COPY到 Resources 目录下。 )
8. 代码优化
生成的JS代码使用 UglifyJS 来优化和压缩。也可以美化它的格式。
对于某些只针对Android 的代码,在针对IOS做编译时,这段代码会被删掉。
Titanium/Alloy 内置的第三方包会被copy到 Resources/<platform>alloy 目录下。
(这里还有一个hook method: jmk 中的post:compile)