我正在尝试CommonJS
在Appcelerator Studio
.
按照这个食谱:
- 文件 > 新建 > 新建移动模块项目
- 将项目名称设置为
testmodule
- 将位置保留为默认值
- 将模块 ID 设置为
au.com.test.testmodule
- 将 Titanium SDK 版本设置为
5.3.1.GA
- 将部署目标设置为
Android
- 点击
Next
然后Finish
这将创建一个名为testmodule
.
在这个文件夹下有一个叫assets
,在里面新建一个文件叫au.com.test.testmodule.js
。这会将模块标记为CommonJS
模块。
在这个文件中创建一个空函数并导出它
function test() {
Ti.API.debug('test');
}
module.exports = test;
从命令行类型:
ant
这将尝试构建模块。
在输出中,您将看到 ant 目标js.compile
,这将显示一条错误消息
[exec] [DEBUG] "/Users/chris/Library/Application Support/Titanium/mobilesdk/osx/5.3.1.GA/android/titanium_prep.macos" au.com.example.testmodule /testmodule/android/build/generated /js au.com.example.testmodule.js
[exec] [错误] 参数不足。
[exec] [错误] 无法为打包准备 JavaScript。错误代码 1。
[执行] 结果:1
像下面这样运行 ant:
ant -debug -logfile build.log
问题似乎是一个名为titanium_prep.macos
.
如果你运行命令
"/Users/chris/Library/Application Support/Titanium/mobilesdk/osx/5.3.1.GA/android/titanium_prep.macos" au.com.example.testmodule /testmodule/android/build/generated/js au.com.mobilogica.testmodule.js
它会给出错误Not enough arguments
。如果您再添加一个参数,它将运行而不给出该消息。
当然,由于参数是伪造的,它不会生成正确的代码。
看起来titanium_prep.macos
需要 4 个参数,但现在只传入了 3 个。
- au.com.example.testmodule
- /testmodule/android/build/生成/js
- au.com.example.testmodule.js
系统:
- Mac OSX 10.10.5
- XCode 6.1
- Appcelerator CLI 5.4.0
- Appcelerator SDK 5.3.1
如果您使用3.5.1.GA
它生成示例相同的模块。
我在 SDK 系列中也试过这个,4.4
也有同样的问题。