android - Titanium:需要commonjs模块内的模块

我发现我们可以创建CommonJS模块而不是本地或Web模块(查看您的Titanium文件夹并搜索ti.cloud模块)。但是我没有找到说明它的文档...

因此,我尝试将自己的CommonJS模块添加到Titanium文件夹“ commonjs”中,然后使用“ require”将其导入到我的应用程序中。它像魅力一样运转。

现在,我想向我的CommonJS模块添加一些其他文件,并使模块在模块内部相互引用。

例如在我的应用程序中,我有:


main.js
ui

CommonView.js



在此结构中,main.js是我的主要模块,它具有方法createCommonView()尝试要求使用模块CommonView(require('./ ui / CommonView')),但编译器抱怨找不到该模块。

如何创建具有多个互相引用的模块的CommonJS模块?

确切地说,我不想在项目中复制这些模块。我想将它们保留在Titanium文件夹中,以便所有项目均可使用。

最佳答案

这是Appcelerator的博客文章,介绍CommonJS模块:http://developer.appcelerator.com/blog/2011/12/commonjs-module-guide-for-1-8.html

这是Appcelerator的指南/文档:https://wiki.appcelerator.org/display/guides/CommonJS+Modules+in+Titanium

现在,所有模块引用都相对于应用程序根目录:


在app.js中,require('main');
在main.js中,require('ui / CommonView')
在CommonView.js中,require('ui / SpecificView')


打包的CommonJS模块(例如ti.cloud,安装在应用程序或应用程序支持的“模块”目录中)仅支持单个JavaScript文件。

提示:我通过在Google中键入“ Appcelerator CommonJS”找到了这些指南。我不确定您用来查找文档的方法是什么。 Titanium Mobile文档中的“ Global”对象中还广泛记录了“ require”:
http://docs.appcelerator.com/titanium/2.1/index.html#!/api/Global