eslint-plugin-lodash-specific-import
v2.0.0
Published
An ESLint plugin to enforce specific lodash imports, preventing global or named imports from 'lodash'.
Downloads
1,905
Maintainers
Readme
eslint-plugin-lodash-specific-import
A lightweight ESLint plugin to enforce specific lodash imports. Keep your bundles smaller and your imports cleaner!
✨ Features
- Prevents full lodash imports (
import _ from 'lodash'orimport _ from 'lodash-es') - Enforces specific function imports (
import debounce from 'lodash/debounce'orimport debounce from 'lodash-es/debounce') - Simple drop-in ESLint rule
- Auto-generated documentation using eslint-doc-generator
📦 Installation
npm install --save-dev eslint-plugin-lodash-specific-import
# or
yarn add --dev eslint-plugin-lodash-specific-import🚀 Usage
Legacy Config (.eslintrc*, ESLint 8/9 only)
{
"extends": ["plugin:lodash-specific-import/recommended"]
}Flat Config (eslint.config.*, ESLint 8/9/10)
Recommended
const lodashSpecificImport = require("eslint-plugin-lodash-specific-import");
module.exports = [
...lodashSpecificImport.configs["flat/recommended"],
];Manual
const lodashSpecificImportPlugin = require("eslint-plugin-lodash-specific-import");
module.exports = [
{
plugins: {
"lodash-specific-import": lodashSpecificImportPlugin,
},
rules: {
"lodash-specific-import/no-global": "error",
},
},
];Compatibility
- Node.js:
>=22 - ESLint:
^8 || ^9 || ^10 - Config styles:
- ESLint 8/9: legacy
.eslintrc*and flateslint.config.* - ESLint 10: flat
eslint.config.*only
- ESLint 8/9: legacy
- Module support: CommonJS + ESM entrypoints
🔍 Rule Example
✅ Good:
import debounce from 'lodash/debounce';
import isEmpty from 'lodash/isEmpty';
import debounce from 'lodash-es/debounce';
import isEmpty from 'lodash-es/isEmpty';❌ Bad:
import _ from 'lodash';
import _ from 'lodash-es';
const lodash = require('lodash');
const lodashEs = require('lodash-es');📚 Rules
💼 Configurations enabled in.
✅ Set in the recommended configuration.
🔧 Automatically fixable by the --fix CLI option.
| Name | Description | 💼 | 🔧 | | :----------------------------------- | :------------------------------------- | :- | :- | | no-global | enforce method-specific lodash imports | ✅ | 🔧 |
📝 Motivation
Importing all of lodash can significantly bloat your JS bundle. This plugin ensures you only import the functions you need, improving performance and clarity.
🔄 Migration
Moving from v1 to v2?
- Prefer flat config for new projects.
- Legacy
.eslintrc*remains available for ESLint 8/9. - ESLint 10 requires flat config.
- Fixer now supports alias imports and mixed type/value specifiers; a few complex edge cases (for example, intricate re-exports or unusual namespace/default combinations) may still require manual review and will be hardened in a follow-up PR.
- Full guide: Migrate to v2
🙌 Contributing
Contributions, issues, and PRs are welcome! Feel free to open an issue or submit a PR.
📄 License
MIT
