1

我正在尝试CommonJSAppcelerator Studio.

按照这个食谱:

  1. 文件 > 新建 > 新建移动模块项目
  2. 将项目名称设置为testmodule
  3. 将位置保留为默认值
  4. 将模块 ID 设置为au.com.test.testmodule
  5. 将 Titanium SDK 版本设置为5.3.1.GA
  6. 将部署目标设置为Android
  7. 点击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 个。

  1. au.com.example.testmodule
  2. /testmodule/android/build/生成/js
  3. 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也有同样的问题。

4

0 回答 0