我正在尝试在CommonJS
中构建Appcelerator Studio
模块。
遵循这个食谱:
testmodule
au.com.test.testmodule
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
这将尝试构建模块。
在输出中,您将看到蚂蚁目标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。
[exec]结果: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个参数。
系统:
如果使用3.5.1.GA
生成示例相同的模块,则可以正常工作。
我也在4.4
系列的SDK中尝试了这一点,并遇到了同样的问题。