多个require()来自同一个模块中的同一个库

我正在寻找NodeJs的@ slack / client npm软件包的源代码,并在顶部看到他们有这个:

var forEach = require('lodash').forEach; var bind = require('lodash').bind; var has = require('lodash').has; var isArray = require('lodash').isArray; var isEmpty = require('lodash').isEmpty; var isObject = require('lodash').isObject; 

当樱桃采用所有这些从lodash模块中挑选的时候,你可以通过只包含整个库文件,然后使用你需要的方法来使它更简洁。

 // Include the whole lib var _ = require('lodash'); // And later if (_.isObject(...)) // etc 

这不像他们多次使用每种方法。 实际上,大多数只使用一次或两次。 而且,我的理解是,即使部分需要部分模块,整个事情也是eval() ,所以内存和性能都没有优势。

我觉得这个软件包写得很好,所以我很好奇,为什么他们select这样做。