0

我正在用 JavaScript 构建一个项目,我想尊重 AMD 约定,但我需要我的项目可以从全局环境中使用(只需添加它的名称)。

Dojo 是一个完美的例子,因为它正是我想要的:有效的 AMD,但 Dojo 可以从全局环境中获得。我试图查看他们的来源,但没有找到他们定义 Dojo 的地方。

到目前为止,我想出的唯一解决方案是:

项目.js:

var Project = {
    // some stuffs in there
};

模块.js:

require(['project'], function () {
    Project.Module = {
        // some stuffs in there
    };
});

我知道这不是最好的方法,我相信 module.js 应该返回{},而不是定义它。

什么是最好的方法?

4

1 回答 1

1

我认为一个不错的选择是检查定义,如果可用,将您的项目定义为模块。

if ( typeof define === "function"){
  define('project', [], function(){ return project; })
}
于 2012-10-24T10:45:21.720 回答