@krknet/eslint-plugin
v2.0.2
Published
KRKnet Standard Rules
Readme
@krknet/eslint-plugin
KRKnet ESLint rules and flat-config helpers for Node, Vue frontend, and SuiteScript projects.
Requirements
- Node.js >= 22
- ESLint ^9
Installation
npm install --save-dev eslint @krknet/eslint-pluginQuick Start (Flat Config)
Create or update your ESLint config:
// eslint.config.mjs
import {
createBase,
createNode,
createFrontend,
plugin
} from '@krknet/eslint-plugin'
export default [
...createBase(),
...createNode(),
createFrontend({ tailwindPath: './app/frontend/layout/main.css' }),
// Optional: manual rule setup for custom rule usage in other file groups.
{
files: ['**/*.vue'],
plugins: {
krk: plugin
},
rules: {
'krk/vue-html-linebreak': 'warn',
'krk/vue-sort-components': 'warn'
}
}
]Exports
This package exports:
plugin: ESLint plugin object (rules,configs)rules: custom rule mapconfigs: config factory mapcreateBase(options?)createNode(options?)returns two config entries (CJS + ESM)createNodeCjs(options?)createNodeEsm(options?)createFrontend(options?)createSuiteScriptBase()createSuiteScriptSource(options?)
Config Helpers
createBase
Shared baseline config. You can add ignore patterns with createBase({ ignores: [...] }).
createNode
Returns an array with dedicated configs for CommonJS and ESM Node files.
Options:
aliases(default{ '>': './app' })rules(applies to both CJS and ESM entries)cjsRules(CJS-only overrides)esmRules(ESM-only overrides)pluginssettings
createFrontend
Vue-focused config with import ordering, Vue rules, Tailwind rules, and KRK custom rules.
Options:
tailwindPath(optional better-tailwindcss entry point)aliases(default{ '@': './app/frontend/components' })plugins
createSuiteScriptBase / createSuiteScriptSource
Helpers for SuiteScript build and source folders.
Supported Rules
krk/vue-html-linebreak
Enforces splitting long Vue start tags into one-attribute-per-line form and merges short multiline tags back to one line.
Options:
splitnumber (default80)mergenumber (default50)
Example:
{
rules: {
'krk/vue-html-linebreak': ['warn', { split: 100, merge: 60 }]
}
}krk/vue-sort-components
Sorts component registration keys in Vue components objects.
Options:
'asc'(default)'desc'
Example:
{
rules: {
'krk/vue-sort-components': ['warn', 'asc']
}
}