lodash-webpack-plugin (original) (raw)
0.11.6 • Public • Published 4 years ago
lodash-webpack-plugin
Create smaller Lodash builds by replacing feature sets of modules with noop, identity, or simpler alternatives.
This plugin complements babel-plugin-lodashby 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) |