eslint-plugin-n8n-nodes-base
raw JSON → 1.16.6 verified Sat Apr 25 auth: no javascript
An ESLint plugin providing custom lint rules for developing n8n nodes and credentials. The current stable version is v1.16.6, with active development and frequent releases (multiple versions per month). It offers three configurable rulesets: 'nodes', 'credentials', and 'community', each enabling a set of rules by default. Key differentiators: designed specifically for the n8n ecosystem, includes community package validation rules, and supports user-defined defaults for certain checks. Requires Node.js >=20.15 and uses pnpm >=9.6.
Common errors
error Error: Failed to load plugin 'n8n-nodes-base' declared in '...': Cannot find module 'eslint-plugin-n8n-nodes-base' ↓
cause Plugin not installed or not in node_modules.
fix
Run: pnpm i -D eslint-plugin-n8n-nodes-base
error TypeError: plugin.rules is not iterable ↓
cause Using incorrect import syntax (e.g., require instead of import).
fix
Use ES module import: import plugin from 'eslint-plugin-n8n-nodes-base'
Warnings
gotcha Rules are disabled by default when only the plugin is specified; must be individually enabled. ↓
fix Either extend a config (e.g., 'plugin:n8n-nodes-base/nodes') or explicitly enable each rule in the rules object.
breaking Requires Node.js >=20.15 and pnpm >=9.6. Using older versions may cause install or runtime failures. ↓
fix Upgrade Node.js to >=20.15 and use pnpm >=9.6 (e.g., via corepack).
deprecated The autofix for 'node-param-collection-type-unsorted-items' was removed in v1.16.3 due to broken behavior. ↓
fix Manually fix violations instead of relying on autofix for this rule.
Install
npm install eslint-plugin-n8n-nodes-base yarn add eslint-plugin-n8n-nodes-base pnpm add eslint-plugin-n8n-nodes-base Imports
- plugin wrong
const plugin = require('eslint-plugin-n8n-nodes-base')correctimport plugin from 'eslint-plugin-n8n-nodes-base' - rules
import { rules } from 'eslint-plugin-n8n-nodes-base' - configs
import { configs } from 'eslint-plugin-n8n-nodes-base'
Quickstart
// .eslintrc.js or eslint.config.js
import plugin from 'eslint-plugin-n8n-nodes-base';
export default [
{
plugins: {
'n8n-nodes-base': plugin,
},
rules: {
'n8n-nodes-base/node-param-default-wrong-for-collection': 'error',
},
},
];
// Or use a predefined config:
export default [
{
plugins: {
'n8n-nodes-base': plugin,
},
extends: ['plugin:n8n-nodes-base/nodes'],
},
];