0

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

在 ti:/module.js:303,2

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

来源: throw new Error("未找到请求的模块:" + request);

V8Exception: 异常发生在 ti:/module.js:303: Uncaught Error: Requested module not found: 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');

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

难道我做错了什么?我将 js 文件放在 Resources 文件夹中,它是另一个路径吗?

4

2 回答 2

0

CommonJs 模块必须在文件夹 /app/lib/ 内

你也可以使用 node_module /app/lib/node_modules 并且从 TiSDK 6 开始完全兼容

于 2017-04-11T09:02:33.477 回答
0

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

所以一个带有 CommonJS 模块的 Alloy 项目必须具有以下结构:

root
  -> app
      -> lib
      -> controllers
      -> views
      -> styles
      -> models
于 2017-03-29T21:42:15.567 回答