我正在查看@slack/client npm package for NodeJs的来源,并在顶部看到他们有这个:
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;
如果你只需要包含整个lib一次然后使用你需要的方法,那么你可以从lodash模块中选择所有这些内容的重点是什么呢?
// Include the whole lib
var _ = require('lodash');
// And later
if (_.isObject(...)) // etc
这并不是说他们多次使用每种方法。事实上,大多数只使用一次或两次。另外,我的理解是,即使部分需要模块的一部分,整个事情也是eval()
'd,因此没有优势记忆或性能。
我觉得这个包写得很好,所以我很想知道他们为什么选择这样做。