2013-03-11 61 views
0

我正在使用RequireJS创建JavaScript SDK以用于其他人的网站。我的RequireJS build config使用命名空间“myNamespace”,这样我的SDK就可以与其自己版本的RequireJS捆绑在一起,而不会干扰其他人的网站。RequireJS优化器名称空间

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模块我的SDK模块时遇到问题?有关RequireJS命名空间的更多信息,请点击此处:http://requirejs.org/docs/faq-advanced.html#rename

回答

0

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

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