🚀 Launch Week Day 5:Introducing Immutable Scans.Learn More →
Socket
Book a DemoInstallSign in
Socket

eslint-plugin-lodash-es

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eslint-plugin-lodash-es

ESLint plugin that enforces destructured imports from lodash-es and auto-fixes them

latest
Source
npmnpm
Version
1.2.0
Version published
Maintainers
1
Created
Source

eslint-plugin-lodash-es

npm npm GitHub
Coverage Quality Gate Status
Reliability Rating Maintainability Rating Security Rating

ESLint plugin that enforces destructured imports from lodash-es with auto-fixing and provides configurable function usage policies.

Key Benefits:

  • đź”§ Auto-fixes imports for better tree-shaking
  • 📦 Reduces bundle size significantly
  • 🛡️ Configurable function usage policies
  • đź’ˇ Intelligent suggestions for native alternatives
  • 📝 Full TypeScript support

Installation

npm install -D eslint-plugin-lodash-es

Usage

Flat config

// eslint.config.js (ESLint 9+)
import eslintPluginLodashEs from 'eslint-plugin-lodash-es'

export default [
  ...eslintPluginLodashEs.configs.recommended
]

Define config

import { defineConfig } from 'eslint/config'

// Base
import globals from 'globals'
import eslint from '@eslint/js'
import tseslint from 'typescript-eslint'
// Plugins
import eslintPluginStylistic from '@stylistic/eslint-plugin'
import eslintPluginLodashEs from 'eslint-plugin-lodash-es'

export default defineConfig(
  {
    ignores: ['dist/', 'node_modules/', 'coverage/'],
  },
  {
    languageOptions: {
      globals: {
        ...globals.browser, // or globals.node
      },
    },
  },
  //Base
  eslint.configs.recommended,
  tseslint.configs.strict,
  tseslint.configs.stylistic,
  // Plugins
  eslintPluginStylistic.configs.recommended,
  eslintPluginLodashEs.configs.recommended
)

Manual Configuration

// eslint.config.js (ESLint 9+)
export default [
  {
    plugins: { 'lodash-es': eslintPluginLodashEs },
    rules: {
      'lodash-es/enforce-destructuring': 'error',
      'lodash-es/no-chaining': 'error',
      'lodash-es/no-method-imports': 'error',
      'lodash-es/enforce-functions': ['error', { exclude: ['forEach'] }],
      'lodash-es/suggest-native-alternatives': 'warn',
    }
  }
]

Legacy Config (ESLint 8)

// .eslintrc.js
module.exports = {
  extends: ['plugin:lodash-es/recommended-legacy']
}

What it does

1. Enforces Destructured Imports

Transforms this:

import _ from 'lodash-es'
const result = _.first([1, 2, 3])

Into this (automatically):

import { first } from 'lodash-es'
const result = first([1, 2, 3])

2. Transforms to Native JavaScript

Transforms this:

import { map, first, groupBy } from 'lodash-es'

const doubled = map([1, 2, 3], x => x * 2)
const firstItem = first(items)
const grouped = groupBy(users, 'department')

Into this (automatically):

import { map, first, groupBy } from 'lodash-es'

const doubled = [1, 2, 3].map(x => x * 2)
const firstItem = items.at(0)
const grouped = Object.groupBy(users, user => user.department)

Supports 104+ lodash functions with automatic transformation to modern JavaScript equivalents, including ES2022+ features like Array.at() and Object.groupBy().

Recently Added Native Alternatives (37 new functions)

Array slice operations: drop, dropRight, take, takeRight Math & arithmetic: add, subtract, multiply, divide, sum, mean Number utilities: clamp, inRange, random String transformations: capitalize, lowerFirst, upperFirst (using modern .at()) Type checking: isDate, isRegExp, isError, isSet, isWeakMap, isWeakSet, isSymbol, isSafeInteger Type conversion: castArray, toArray, toFinite, toInteger, toSafeInteger Comparisons: eq, gt, gte, lt, lte Function utilities: bind, delay, defer Object creation: create Utility stubs: identity, noop, stubArray, stubFalse, stubObject, stubString, stubTrue

Rules

RuleDescription💡🔧✅
enforce-destructuringEnforce destructured imports from lodash-esđź”§âś…
no-chainingPrevent chaining that kills tree-shaking💡🔧✅
no-method-importsPrevent deprecated per-method imports💡🔧✅
enforce-functionsTransform lodash functions to native JavaScript💡🔧
suggest-native-alternativesSuggest native JavaScript alternatives💡🔧

Legend: 💡 Suggestions • 🔧 Auto-fixable • ✅ Recommended

Why Use This?

Bundle Size: Reduces bundle from ~70KB (full lodash-es) to ~1KB per function

Better Tree Shaking: Modern bundlers eliminate unused code more effectively

Team Standards: Enforce consistent lodash usage across your codebase

Documentation

See detailed rule documentation for configuration options and examples.

Contributing

Contributions welcome! See CONTRIBUTING.md for details.

Keywords

eslint

FAQs

Package last updated on 25 Oct 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts