我正在用JavaScript构建一个项目,我想尊重AMD惯例,但我需要我的项目在全局环境中可用(只需添加它的名字)。
Dojo就是一个完美的例子,因为它正是我想要的:有效的AMD,但是Dojo可以从全局环境中使用。我试着看他们的源码,但没有找到他们定义Dojo的地方。
到目前为止,我想到的唯一解决方案是这样的。
project.js :
var Project = {
// some stuffs in there
};
模块.js :
require(['project'], function () {
Project.Module = {
// some stuffs in there
};
});
我知道这不是最好的方法,我相信module.js应该返回的是 {}
,而不是定义它。
最好的方法是什么?
我认为一个好的选择是检查定义,如果它是可用的,就把你的项目定义为一个模块。
if ( typeof define === "function"){
define('project', [], function(){ return project; })
}