Skip to content
This repository was archived by the owner on Sep 16, 2023. It is now read-only.

lodash/lodash-webpack-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c1bacb3 · Dec 21, 2020
Dec 21, 2020
Dec 19, 2020
Nov 23, 2017
Nov 23, 2017
Jul 23, 2017
Sep 5, 2017
Apr 29, 2016
May 3, 2016
Apr 13, 2018
Oct 19, 2016
Feb 23, 2019
Dec 19, 2020
Dec 19, 2020

Repository files navigation

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

demo

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)