lunte
v1.8.0
Published
Self-contained linter for Pear/Bare projects
Downloads
15,026
Maintainers
Readme
Lunte
A self-contained JavaScript linter, mostly matching non-formatting rules of Standard.
Installation
npm install --save-dev lunteUsage
lunte [optional: dir or glob]Globs are supported:
lunte "src/**/*.js"By default Lunte skips node_modules/. Manage additional exclusions with .lunteignore (gitignore-style patterns).
Files ending in .json are also linted. Lunte treats them as strict JSON, so invalid syntax is reported and structural rules such as no-dupe-keys still apply.
Configuration
Configuration is optional, but when needed create a .lunterc (or .lunterc.json) at the project root.
{
"env": ["node"],
"globals": ["MY_APP"],
"plugins": ["lunte-plugin-pear"],
"rules": {
"no-undef": "off",
"pear/no-apples": "error"
},
"disableHolepunchGlobals": true
}envenables preset global sets (node,browser,es2021).globalsadds project-specific globals.rulessets severities per rule ("off","warn","error", or0/1/2).disableHolepunchGlobalsskips addingPear/Bareglobals.
Command-line overrides are available for ad-hoc runs:
lunte --env browser --global Pear --rule no-unused-vars=off src/TypeScript
- Experimental parser is bundled via vendored
@sveltejs/acorn-typescript; no extra install needed. - Files ending
.ts,.tsx,.mts,.cts,.d.ts(and.jsxwhen present) automatically switch to the TS parser. - Type-aware handling currently exists for
no-undefandno-unused-vars; other rules run without type checking.
Plugins
Load third-party rule packs by listing module IDs under plugins. Each plugin should export a rules array (or object) of rule definitions with unique meta.name values.
{
"plugins": ["./rules/lunte-plugin-pear.js", "lunte-plugin-pear"],
"rules": {
"pear/no-apples": "error"
}
}For ad-hoc runs, lunte --plugin lunte-plugin-pear --plugin ./rules/lunte-plugin-pear.js src/ applies the same modules.
Inline Ignores
const cached = maybeUndefined() // lunte-disable-line no-undef
// lunte-disable-next-line
useGlobalResource()lunte-disable-linesuppresses the listed rules, or all rules when none are listed, on the same line.lunte-disable-next-lineapplies to the following line.eslint-disable-*directives are also supported for compatibility.
Editor Integration
Lunte ships with a separate LSP package: lunte-lsp.
Repository
Monorepo: https://github.com/holepunchto/lunte

License
Apache-2.0
