# lodash-webpack-plugin

> Smaller modular Lodash builds.

Latest version **0.11.6** (published 2020-12-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install lodash-webpack-plugin
pnpm add lodash-webpack-plugin
yarn add lodash-webpack-plugin
bun add lodash-webpack-plugin
```

## Health

**Score 23/100 (F)** — status: abandoned.

Positive: has types package; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.11.6 |
| Published | 2020-12-19 |
| First published | 2016-05-06 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | separate (@types/lodash-webpack-plugin) |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 17.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1188 |
| Author | John-David Dalton |
| Maintainers | mathias, d10, jdalton, bnjmnt4n |
| Keywords | lodash, modules, webpack-plugin |

## Links

- npm: https://www.npmjs.com/package/lodash-webpack-plugin
- Repository: https://github.com/lodash/lodash-webpack-plugin
- Homepage: https://github.com/lodash/lodash-webpack-plugin#readme
- Issues: https://github.com/lodash/lodash-webpack-plugin/issues
- npm.io page: https://npm.io/package/lodash-webpack-plugin

## Dependencies (1)

- [lodash](https://npm.io/package/lodash.md) ^4.17.20

## Alternatives

- [lodash.assign](https://npm.io/package/lodash.assign.md) — 2.3M weekly downloads
- [lodash.chunk](https://npm.io/package/lodash.chunk.md) — 1.8M weekly downloads
- [react-native-ios-utilities](https://npm.io/package/react-native-ios-utilities.md) — 138.5K weekly downloads
- [@technically/lodash](https://npm.io/package/@technically/lodash.md) — 50.9K weekly downloads
- [@fluid-topics/ft-icon](https://npm.io/package/@fluid-topics/ft-icon.md) — 20.6K weekly downloads

## Recent versions

- 0.11.6 (latest) — 2020-12-19
- 0.11.5 — 2018-04-13
- 0.11.4 — 2017-05-25
- 0.11.3 — 2017-04-26
- 0.11.2 — 2017-02-22
- 0.11.1 — 2017-02-22
- 0.11.0 — 2017-01-19
- 0.10.7 — 2017-01-05
- 0.10.6 — 2016-11-17
- 0.10.5 — 2016-11-08
- 0.10.4 — 2016-11-05
- 0.10.3 — 2016-10-31
- 0.10.2 — 2016-10-06
- 0.10.1 — 2016-09-19
- 0.10.0 — 2016-08-12
- … 17 more at https://npm.io/package/lodash-webpack-plugin/versions

## README

# lodash-webpack-plugin

Create smaller Lodash builds by replacing [feature sets](#feature-sets) of modules
with [noop](https://lodash.com/docs#noop), [identity](https://lodash.com/docs#identity),
or simpler alternatives.

This plugin complements [babel-plugin-lodash](https://www.npmjs.com/package/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

```shell
$ npm i --save lodash
$ npm i --save-dev lodash-webpack-plugin babel-core babel-loader babel-plugin-lodash babel-preset-env webpack
```

## Example

![demo](https://cloud.githubusercontent.com/assets/4303/15064867/2c5420b0-130e-11e6-8293-5037d359851f.gif)

## Usage

###### webpack.config.js
```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:
```js
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.<br>_(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.<br>_(requires `currying`)_ |

---
_Source: https://npm.io/package/lodash-webpack-plugin · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
