eslint-plugin-you-dont-need-lodash-underscore weekly downloads statistics
By you-dont-need · npm · ESLint plugins
Check methods you can use natively without lodash/underscore
eslint-plugin-you-dont-need-lodash-underscore has 157,139 recorded weekly downloads on npm, a decrease of 50.9% over the past 30 days.
It ranks #397 of 2,253 tracked npm listings by weekly downloads.
Over 90 days, weekly downloads changed by -60.4%.
PluginStats has 121 daily observations since Jun 19, 2026; the latest is from Oct 17, 2026.
About eslint-plugin-you-dont-need-lodash-underscore
You don't (may not) need Lodash/Underscore
Lodash and Underscore are great modern JavaScript utility libraries, and they are widely used by Front-end developers. However, when you are targeting modern browsers, you may find out that there are many methods which are already supported natively thanks to ECMAScript5 [ES5] and ECMAScript2015 [ES6]. If you want your project to require fewer dependencies, and you know your target browser clearly, then you may not need Lodash/Underscore.
You are welcome to contribute with more items provided below.
• If you are targeting legacy JavaScript engine with those ES5 methods, you can use es5-shim • Please note that, the examples used below are just showing you the native alternative of performing certain tasks. For some functions, Lodash provides you more options than native built-ins. This list is not a 1:1 comparison. • Please send a PR if you want to add or modify the code. No need to open an issue unless it's something big and you want to discuss.
Voice of Developers
Make use of native JavaScript object and array utilities before going big.
—Cody Lindley, Author of jQuery Cookbook and JavaScript Enlightenment
You probably don't need Lodash. Nice List of JavaScript methods which you can use natively.
—Daniel Lamb, Computer Scientist, Technical Reviewer of Secrets of the JavaScript Ninja and Functional Programming in JavaScript
I guess not, but I want it.
—Tero Parviainen, Author of build-your-own-angular
I'll admit, I've been guilty of overusing #lodash. Excellent resource.
—@therebelrobot, Maker of web things, Facilitator for Node.js/io.js
ESLint Plugin
If you're using ESLint, you can install a plugin that will help you identify places in your codebase where you don't (may not) need Lodash/Underscore.
Install the plugin ...
... then update your config
For more information, see Configuring the ESLint Plugin
[!IMPORTANT] Note that, while many Lodash methods are null safe (e.g. _.keys, _.entries), this is not necessarily the case for their Native equivalent. If null safety is critical for your application, we suggest that you take extra precautions [e.g. consider using the native Object.keys as Object.keys(value || {})].
Quick Links
Array
1. _.chunk 1. _.compact 1. _.concat 1. _.difference 1. _.drop 1. _.dropRight 1. _.fill 1. _.find 1. _.findIndex 1. _.first 1. _.flatten 1. _.flattenDeep 1. _.fromPairs 1. _.head and _.tail 1. _.indexOf 1. _.intersection 1. _.isArray 1. _.isArrayBuffer 1. _.join 1. _.last 1. _.lastIndexOf 1. _.reverse 1. _.slice 1. _.without 1. _.initial 1. _.pull 1. _.unionBy
Collection*
[!IMPORTANT] Note that most native equivalents are array methods, and will not work with objects. If this functionality is needed and no object method is provided, then Lodash/Underscore might be the better option. Bear in mind however, that all iterable objects can easily be converted to an array by use of the spread operator.
1. _.each 1. _.every 1. _.filter 1. _.groupBy 1. _.includes 1. _.keyBy 1. _.map 1. _.minBy and _.maxBy 1. _.orderBy 1. _.pluck 1. _.range 1. _.reduce 1. _.reduceRight 1. _.reject 1. _.size 1. _.some 1. _.sortBy 1. _.uniq 1. _.uniqWith
Function
1. _.after 1. _.bind 1. _.debounce 1. _.isFunction 1. _.partial 1. _.throttle
Lang
1. _.castArray 1. .cloneDeep 1. _.gt 1. _.gte 1. _.isDate 1. _.isEmpty 1. _.isFinite 1. _.isInteger 1. _.isNaN 1. _.isNil 1. _.isNull 1. _.isUndefined
Object
1. _.assign 1. _.defaults 1. _.extend 1. _.has 1. _.get 1. _.invert 1. _.isPlainObject 1. _.keys 1. _.mapKeys 1. _.omit 1. _.pick 1. _.pickBy 1. _.toPairs 1. _.values
String
1. _.capitalize 1. _.endsWith 1. _.isString 1. _.lowerFirst 1. _.padStart and _.padEnd 1. _.repeat 1. _.replace 1. _.split 1. _.startsWith 1. _.template 1. _.toLower 1. _.toUpper 1. _.trim 1. _.upperFirst
Util
1. _.times
Number
1. _.clamp 2. _.inRange 3. _.random
Array
_.chunk
Creates an array of elements split into groups the length of size.
Browser Support for Spread in array literals
![Chrome][chrome-image] | ![Edge][edge-image] | ![Firefox][firefox-image] | ![IE][ie-image] | ![Opera][opera-image] | ![Safari][safari-image] :-: | :-: | :-: | :-: | :-: | :-: | 46.0 ✔ | 12.0 ✔ | 16.0 ✔ | ✖ | 37.0 ✔ | 8.0 ✔ |
⬆ back to top
_.compact
Creates an array with all falsy values removed.
Browser Support for array.prototype.filter
![Chrome][chrome-image] | ![Edge][edge-image] | ![Firefox][firefox-image] | ![IE][ie-image] | ![Opera][opera-image] | ![Safari][safari-image] :-: | :-: | :-: | :-: | :-: | :-: | ✔ | ✔ | 1.5 ✔ | 9.0 ✔ | ✔ | ✔ |
⬆ back to top
_.concat
Creates a new array concatenating array with any additional arrays and/or values.
Browser Support for Array.prototype.concat()
![Chrome][chrome-image] | ![Edge][edge-image] | ![Firefox][firefox-image] | ![IE][ie-image] | ![Opera][opera-image] | ![Safari][safari-image] :-: | :-: | :-: | :-: | :-: | :-: | 1.0 ✔ | ✔ | 1.0 ✔ | 5.5 ✔ | ✔ | ✔ |
⬆ back to top
_.difference
Similar to without, but returns the values from array that are not present in the other arrays.
Browser Support for Array.prototype.reduce()
![Chrome][chrome-image] | ![Edge][edge-image] | ![Firefox][firefox-image] | ![IE][ie-image] | ![Opera][opera-image] | ![Safari][safari-image] :-: | :-: | :-: | :-: | :-: | :-: | ✔ | ✔ | 3.0 ✔ | 9.0 ✔ | 10.5 ✔ | 4.0 ✔ |
⬆ back to top
_.drop
Creates a slice of array with n elements dropped from the beginning.
Browser Support for Array.prototype.slice()
![Chrome][chrome-image] | ![Edge][edge-image] | ![Firefox][firefox-image] | ![IE][ie-image] | ![Opera][opera-image] | ![Safari][safari-image] :-: | :-: | :-: | :-: | :-: | :-: | 1.0 ✔ | ✔ | 1.0 ✔ | ✔ | ✔ | ✔ |
⬆ back to top
_.dropRight
Creates a slice of array with n elements dropped at the end.
Browser Support for Array.prototype.slice()…
Description from the npm listing.
- underscore
- lodash
- eslint
- eslintplugin
- eslint-plugin
- native
Where eslint-plugin-you-dont-need-lodash-underscore sits in the listing
Each band is one page of 20. Weekly downloads on a log scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Recent observations
Full history (121)Similar npm ESLint plugins plugins
Data source
Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.
Listing: https://www.npmjs.com/package/eslint-plugin-you-dont-need-lodash-underscore. First seen Oct 16, 2026; last successful collection Oct 19, 2026. See the methodology.