如何在全局环境中定义一个模块,同时尊重AMD惯例?

问题描述 投票:0回答:1

我正在用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应该返回的是 {},而不是定义它。

最好的方法是什么?

requirejs js-amd
1个回答
1
投票

我认为一个好的选择是检查定义,如果它是可用的,就把你的项目定义为一个模块。

if ( typeof define === "function"){
  define('project', [], function(){ return project; })
}
© www.soinside.com 2019 - 2024. All rights reserved.