命名空间javascript库,作为可选项

4 javascript javascript-framework node.js

我即将开始构建一个具有多个模块的JS库.假设库名为Library,两个模块称为One和Two.我希望最终用户能够以两种不同的方式调用库:

Library.One.somefunction(params)
Run Code Online (Sandbox Code Playgroud)

要么

somefunction(params)
Run Code Online (Sandbox Code Playgroud)

基本上,我想给最终用户选择是否包含命名空间.有没有办法做到这一点?另外,如果我还想提供缩小版本的库,有没有一种好方法可以做到这一点?我可以在Node.js中找到这个库; 现在,我将自己使用它,但我想以这样的方式设计它,以便将来转向一个可共享的项目并不太难.

你可以指点我的任何参考都会很棒,谢谢!

gbl*_*zex 5

如果您使用的是Node.js,则可以使用CommonJS模块系统.

math.js(你的图书馆)

exports.add = function() {
    for (var i = arguments.length; i--;) {
        sum += arguments[i];
    }
    return sum;
};
Run Code Online (Sandbox Code Playgroud)

program.js(有人使用它...)

var MyMath = require('math');
console.log(MyMath.add(1, 2)); // 3

// ... in different ways

var add = require('math').add;
console.log(add(1, 2)); // 3
Run Code Online (Sandbox Code Playgroud)