Registry /
testing / eslint-plugin-boundaries
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslnode 18–226 runs
build_error
glibcnode 18–226 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
plugin
✓ import boundaries from 'eslint-plugin-boundaries'
✗ const boundaries = require('eslint-plugin-boundaries')
Default import is ESM. In CommonJS, use const boundaries = require('eslint-plugin-boundaries').default (since v6).
rules
✓ import boundaries from 'eslint-plugin-boundaries'; const { rules } = boundaries
✗ import { rules } from 'eslint-plugin-boundaries'
Named export 'rules' is part of the default export object, not a top-level export.
createConfig
✓ import { createConfig } from 'eslint-plugin-boundaries'
✗ import createConfig from 'eslint-plugin-boundaries'
createConfig is a named export (since v6). For ESLint v9/v10 flat config.
configs.recommended
✓ import boundaries from 'eslint-plugin-boundaries'; boundaries.configs.recommended
✗ import { configs } from 'eslint-plugin-boundaries'
configs is a property of the default export.
Configures eslint-plugin-boundaries with element types and dependency rules in flat ESLint config (v9+).
// npm install eslint eslint-plugin-boundaries --save-dev
// eslint.config.js (flat config)
import boundaries from 'eslint-plugin-boundaries';
export default [
{
plugins: { boundaries },
settings: {
'boundaries/elements': [
{ type: 'controller', pattern: 'controllers/*' },
{ type: 'model', pattern: 'models/*' },
{ type: 'view', pattern: 'views/*' },
{ type: 'service', pattern: 'services/*' },
{ type: 'utility', pattern: 'utils/*' },
],
},
rules: {
'boundaries/element-types': [2, {
default: 'disallow',
rules: [
{ from: 'controller', to: 'view', allow: true },
{ from: 'controller', to: 'model', allow: true },
{ from: 'view', to: 'controller', allow: false },
{ from: 'model', to: 'service', allow: true },
{ from: 'service', to: ['model', 'utility'], allow: true },
{ from: 'utility', to: ['utility', 'model'], allow: true },
],
}],
},
},
];
Errors
Common errors & fixes
Cannot read properties of undefined (reading 'default')
Using CommonJS require() without .default in ESM-only v6
fixUse const boundaries = require('eslint-plugin-boundaries').default; ESLint configuration error: Rule 'boundaries/element-types' is not found
Plugin not added to plugins field in flat config
fixAdd plugins: { boundaries } to the config object (see quickstart) Boundaries: No element matched for file '...' (settings 'boundaries/elements')
File path does not match any defined element pattern
fixAdd a pattern that matches the file or adjust existing patterns
TypeError: boundaries.createConfig is not a function
Using named import for createConfig in CommonJS without default import
fixUse import boundaries from 'eslint-plugin-boundaries'; boundaries.createConfig()
Audit
Dependencies
eslintrequiredpeer dependency required at >=6.0.0 to function as a plugin