【问题标题】:RequireJS optimizer namespaceRequireJS 优化器命名空间
【发布时间】:2013-03-11 09:51:19
【问题描述】:

我正在使用 RequireJS 创建一个 JavaScript SDK,以便在其他人的网站上使用。我的 RequireJS 构建配置使用命名空间“myNamespace”,以便我的 SDK 可以与它​​自己的 RequireJS 版本捆绑在一起,而不会干扰其他人的网站。虽然这可以按预期工作,但我在尝试从另一个 RequireJS 模块中要求我的 SDK 模块时遇到了问题:

myNamespace.define('public1', function (require) {
    var public2 = require('public2');

    return { x: 1, y: public2.y };
});

myNamespace.define('public2', function (require) {
    return { y: 1 };
});

define(function (require) {
    var private1 = require('private1');
    var private2 = require('private2');
    var public1 = myNamespace.require('public1'); // This doesn't work as it isn't using the provided `require` method.
});

任何想法如何“混合”这两个 RequireJS 库?更多关于 RequireJS 命名空间的信息:http://requirejs.org/docs/faq-advanced.html#rename

【问题讨论】:

    标签: javascript requirejs amd


    【解决方案1】:

    所以,我想出了一个解决方案。如果您认为这可以做得更聪明,请告诉我。我创建了一个用作包装器的插件:

    define(['https://example.com/mySDK.js'], {
        load: function (name, req, onload, config) {
            myNamespace.require([name], onload);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-30
      • 1970-01-01
      • 2021-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-13
      • 2013-11-29
      相关资源
      最近更新 更多