假设我创建了一个库,./libname
其中包含一个主文件:main.js
和多个偶尔与主对象一起使用的可选库文件:a.js
和b.js
.
我index.js
使用以下内容创建文件:
exports.MainClass = require('main.js').MainClass; // shortcut
exports.a = require('a');
exports.b = require('b');
现在我可以按如下方式使用该库:
var lib = require('./libname');
lib.MainClass;
lib.a.Something; // Here I need the optional utility object
lib.b.SomeOtherThing;
然而,这意味着,我总是加载“a.js”和“b.js”,而不是在我真正需要它们时加载。
当然我可以手动加载可选模块require('./libname/a.js')
,但是我失去了漂亮的lib.a
点符号:)
有没有办法使用某种索引文件实现按需加载?也许,有些package.json
魔法可以在这里很好地发挥作用?