如何正确加载Titanium项目中的CommonJS模块?

时间:2017-03-29 18:52:06

标签: titanium-mobile titanium-alloy titanium-android

我正在使用Atom和Titanium SDK 6.0.1.GA,Alloy 1.9.8并定位到Android API 22,我在Resources文件夹中创建了一个CommonJS模块但是当我尝试运行我的应用程序时出现以下错误:

  

在ti:/module.js:303,2

     

消息:未捕获错误:找不到请求的模块:contactClient

     

来源:抛出新错误(“未找到请求的模块:”+请求);

     

V8Exception:ti发生异常:/module.js:303:未捕获错误:找不到请求的模块:contactClient

模块内的代码是:

function getClient(path, successCallback, errorCallback){
  var client = Ti.Network.createHTTPClient({
    onload : successCallback,
    onerror : errorCallback
  });
  client.open('GET', 'http://10.0.12.138:8284/' + path);
  client.send();
}

function getContacts(successCallback, errorCallback){
  getClient('contacts', successCallback, errorCallback);
}

exports.getContacts = getContacts;

我的模块的路径是Resources / contactClient.js,我尝试将它加载到我的index.js中,如下所示:

var contactsClient = require('contactClient');

我检查了the documentation的CommonJS模块,根据它,这应该不是问题。

我做错了吗?我将js文件放在Resources文件夹中,是另一条路径吗?

2 个答案:

答案 0 :(得分:0)

问题是我将模块放在Resources文件夹中,显然,CommonJS模块必须放在app文件夹内的lib文件夹中。

因此,使用CommonJS模块的Alloy项目必须具有以下结构:

root
  -> app
      -> lib
      -> controllers
      -> views
      -> styles
      -> models

答案 1 :(得分:0)

CommonJs模块必须位于文件夹/ app / lib /

你也可以使用node_module / app / lib / node_modules,自TiSDK 6以来它完全兼容