Ecmascript 6 ES6中的Lodash死代码删除

Ecmascript 6 ES6中的Lodash死代码删除,ecmascript-6,lodash,webpack,babeljs,uglifyjs,Ecmascript 6,Lodash,Webpack,Babeljs,Uglifyjs,我一直在我的应用程序和库中使用,我一直在用(和)打包我的应用程序和库 问题是,缩小时,如果您全部导入lodash,UglifyJS不知道如何从lodash中删除未使用的函数。聪明的人想出了只从lodash导入您将要使用的功能,如下所示: var forEach = require('lodash/array/forEach'); 这非常有效,并导致代码的编译版本小得多。但是,在使用lodash的许多部分的文件中,它可能非常乏味 使用ES6样式的导入和应用程序是否可以实现相同的效果?例如: im

我一直在我的应用程序和库中使用,我一直在用(和)打包我的应用程序和库

问题是,缩小时,如果您全部导入lodash,UglifyJS不知道如何从lodash中删除未使用的函数。聪明的人想出了只从lodash导入您将要使用的功能,如下所示:

var forEach = require('lodash/array/forEach');
这非常有效,并导致代码的编译版本小得多。但是,在使用lodash的许多部分的文件中,它可能非常乏味

使用ES6样式的导入和应用程序是否可以实现相同的效果?例如:

import { forEach } from 'lodash';

我很怀疑,因为它是从lodash库的根导入的,而不是像前一个示例那样从单个函数的文件导入的。

鉴于您可能已经在使用Babel,我认为可以做到这一点。它能够从

import lodash from 'lodash';

lodash.map([1, 2, 3], function(x) {
    // ... 
});


重要正如@reflog在评论中提到的,这种方法不适用于lodash链接

我不知道你真正的问题的答案,我也不知道太多,但我认为这就是我们的目标。太棒了。我不知道那是真的。非常感谢。请注意,它与链接不起作用。因此,如果您尝试
(数组).map(func).tap(日志)
,它将不起作用。@reflog谢谢。添加了一个注释。
import _map from 'lodash/collection/map';

_map([1, 2, 3], function(x) {
    // ... 
});