lodash-webpack-plugin
v0.11.6
Published
Smaller modular Lodash builds.
Downloads
498,998
Readme
lodash-webpack-plugin
Create smaller Lodash builds by replacing feature sets of modules with noop, identity, or simpler alternatives.
This plugin complements babel-plugin-lodash by shrinking its cherry-picked builds even further!
DISCLAIMER: Using this plugin without enabling the proper feature sets may cause lodash functions to behave in unexpected ways. Methods may appear to work, however they might return incorrect results.
Install
$ npm i --save lodash
$ npm i --save-dev lodash-webpack-plugin babel-core babel-loader babel-plugin-lodash babel-preset-env webpack
Example
Usage
webpack.config.js
var LodashModuleReplacementPlugin = require('lodash-webpack-plugin');
var webpack = require('webpack');
module.exports = {
'module': {
'rules': [{
'use': 'babel-loader',
'test': /\.js$/,
'exclude': /node_modules/,
'options': {
'plugins': ['lodash'],
'presets': [['env', { 'modules': false, 'targets': { 'node': 4 } }]]
}
}]
},
'plugins': [
new LodashModuleReplacementPlugin,
new webpack.optimize.UglifyJsPlugin
]
};
Opt-in to features with an options object:
new LodashModuleReplacementPlugin({
'collections': true,
'paths': true
});
Feature Sets
The following features are removed by default (biggest savings first):
| Feature | Description |
|:---|:---|
| shorthands
| Iteratee shorthands for _.property
, _.matches
, & _.matchesProperty
. |
| cloning
| Support “clone” methods & cloning source objects. |
| currying
| Support “curry” methods. |
| caching
| Caches for methods like _.cloneDeep
, _.isEqual
, & _.uniq
. |
| collections
| Support objects in “Collection” methods. |
| exotics
| Support objects like buffers, maps, sets, symbols, typed arrays, etc. |
| guards
| Guards for host objects, sparse arrays, & other edge cases. |
| metadata
| Metadata to reduce wrapping of bound, curried, & partially applied functions.(requires currying
) |
| deburring
| Support deburring letters. |
| unicode
| Support Unicode symbols. |
| chaining
| Components to support chain sequences. |
| memoizing
| Support _.memoize
& memoization. |
| coercions
| Support for coercing values to integers, numbers, & strings. |
| flattening
| Support “flatten” methods & flattening rest arguments. |
| paths
| Deep property path support for methods like _.get
, _.has
, & _.set
. |
| placeholders
| Argument placeholder support for “bind”, “curry”, & “partial” methods.(requires currying
) |