Registry / testing / eslint-plugin-harlanzw

eslint-plugin-harlanzw

JSON →
library0.12.1jsnpmunverified

An experimental ESLint plugin v0.12.1 by Harlan Wilton for Vue/Nuxt projects, shipping 26+ rules across four categories: link hygiene (ASCII-only, lowercase, trailing slashes), Nuxt best practices (await navigateTo, prefer NuxtLink), Vue reactivity patterns (avoid nested reactivity, ref unwrapping), and AI deslop tools (clean AI-generated markdown slop). Requires eslint >=9.0.0 (flat config only), ships with TypeScript types, and is released irregularly with breaking changes (e.g., v0.12.0 dropped `mixed-conventions`). Differentiates from eslint-plugin-vue by targeting Nuxt-specific patterns and opinionated link rules not found elsewhere.

npm install eslint-plugin-harlanzw
INSTALL
IMPORT
SIG · ESLINT-PLUGIN-HARL
E
eslint-plugin-harlanzw
testingjavascriptv0.12.1
Install
—
Import
—
Disk
—
Pass rate
0/ 6
Env Coverage0 / 6
glibc
18–22
musl
18–22
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
musl
node 18–226 runs
build_error
glibc
node 18–226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

pluginHarlanzw
✓ import pluginHarlanzw from 'eslint-plugin-harlanzw'
✗ const pluginHarlanzw = require('eslint-plugin-harlanzw')
ESM-only; CommonJS require() will fail. The default export is the plugin object.
rules
✓ import { rules } from 'eslint-plugin-harlanzw'
✗ import { rules } from 'eslint-plugin-harlanzw/rules'
Rules are exported as a named export from the plugin package, not from a subpath.
configs
✓ import { configs } from 'eslint-plugin-harlanzw'
Configs are available as a named export; there is no default config bundle in v0.12.x.

Flat ESLint config enabling link hygiene and Nuxt rules with plugin import and rule registration.

import pluginHarlanzw from 'eslint-plugin-harlanzw'; export default [ { plugins: { harlanzw: pluginHarlanzw }, rules: { 'harlanzw/link-ascii-only': 'error', 'harlanzw/link-lowercase': 'warn', 'harlanzw/link-trailing-slash': ['error', { trailing: 'never' }], 'harlanzw/nuxt-await-navigate-to': 'error', 'harlanzw/vue-no-nested-reactivity': 'error' } } ];
Debug
Known issues
breakingMixed-conventions rule has been removed in v0.12.0.
fix
Remove any references to 'harlanzw/mixed-conventions' from your ESLint configuration; the rule no longer exists.
affects: >=0.12.0
gotchaThe plugin requires ESLint flat config (>=9.0.0). Using .eslintrc or eslintrc configs will fail.
fix
Switch to flat config format (eslint.config.js or eslint.config.mjs) with ESLint >=9.0.0.
affects: >=0.0.0
gotchaRules are experimental and may change without major version bump. Some rules may have false positives in edge cases.
fix
Pin the plugin version and test rules thoroughly. Monitor release notes for rule changes.
affects: >=0.0.0
deprecatedThe 'deslop' rules are highly experimental and may be removed or renamed in future versions.
fix
Use with caution; consider if these rules are necessary before adopting.
affects: >=0.10.0
Errors
Common errors & fixes
Error: Cannot find module 'eslint-plugin-harlanzw'
Plugin not installed or missing from package.json dependencies.
fix
Run 'npm install eslint-plugin-harlanzw --save-dev' or 'yarn add -D eslint-plugin-harlanzw'.
TypeError: eslint.Plugin is not a constructor
Using legacy require() in CommonJS with ESLint flat config.
fix
Use ESM import syntax: 'import pluginHarlanzw from 'eslint-plugin-harlanzw';'.
Error: Failed to load plugin 'harlanzw': Rule 'harlanzw/mixed-conventions' is not found
Mixed-conventions rule was removed in v0.12.0 but still referenced in config.
fix
Remove 'harlanzw/mixed-conventions' from your rules object.
Error: ESLint configuration in eslint.config.mjs is invalid: Unexpected top-level property 'rules'.
Attempting to use flat config without the proper plugins object structure.
fix
Wrap rules inside a config object with 'plugins' property as shown in the quickstart.
Upgrade
Version history
0.12.1latest on npm
Audit
Dependencies
eslintrequiredPeer dependency: plugin requires ESLint >=9.0.0 with flat config support
Agent activity
4 hits · last 30 days
node
4
Resources
eslint-plugin-harlanzw — npm install eslint-plugin-harlanzw · libregistry