需要 lodash 模块和 webpack

requiring lodash modules with webpack

我以前使用 lodash.js 没有任何包装,如下所示:

if (_.isFunction(myFunc)) { ... } 

最近开始使用webpack。现在,似乎 isFunction 等许多功能都不是核心模块的一部分。因此,以下工作:

var _ = require("lodash/core");
var _isFunction = require("lodash/isFunction");

但是,当我在没有 webpack(没有点)的情况下使用 lodash 时,上面改变了语法。我是否应该像下面这样要求:

_.isFunction = require("lodash/isFunction")

所以,要保持相同的语法?

当您执行以下操作时,您将所有内容都导入到一个大的 lodash 对象下:

var _ = require('lodash');

_(或您选择的任何变量)将填充一堆函数:

_ = {
    isX: function... 
    isY: function... 
    // ... etc
}

即:它带来了一切

当您执行以下操作时,它只会将所需的模块直接导入到变量中:

var anynameX = require('lodash/isX'); 
var anynameY = require('lodash/isY');

anynameXanynameY 可以是任何东西。

换句话说:

_.isX === anynameX;    
_.isY === anynameY;

所以要回答你的最后一个问题,你可以这样做:

_.anynameX = require('lodash/isX');

但前提是 _ 已经存在(并且未冻结),例如:

var _ = {};
_.anynameX = require('lodash/isX');