JavaScript Language Guide¶
linthis uses eslint for linting and prettier for formatting JavaScript code.
Supported File Extensions¶
.js.jsx.mjs.cjs
Required Tools¶
Linter: eslint¶
# Install globally
npm install -g eslint
# Or project-local
npm install --save-dev eslint
# Verify installation
eslint --version
Formatter: prettier¶
# Install globally
npm install -g prettier
# Or project-local
npm install --save-dev prettier
# Verify installation
prettier --version
Configuration¶
Basic Example¶
# .linthis/config.toml
[javascript]
max_complexity = 15
excludes = ["dist/**", "node_modules/**", "*.min.js"]
Disable Specific Rules¶
[javascript.rules]
disable = [
"no-console",
"no-unused-vars",
"no-undef"
]
Custom Rules¶
[[rules.custom]]
code = "js/no-var"
pattern = "\\bvar\\s+"
message = "Use 'let' or 'const' instead of 'var'"
severity = "warning"
languages = ["javascript"]
[[rules.custom]]
code = "js/no-alert"
pattern = "\\balert\\s*\\("
message = "Avoid using alert()"
severity = "warning"
languages = ["javascript"]
CLI Usage¶
# Check JavaScript files only
linthis -c --lang javascript
# Format JavaScript files only
linthis -f --lang javascript
ESLint Configuration¶
Create .eslintrc.json:
{
"env": {
"browser": true,
"es2021": true,
"node": true
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"rules": {
"no-unused-vars": "warn",
"no-console": "off"
}
}
Common Issues¶
ESLint not found¶
Warning: No javascript linter available for javascript files
Install: npm install -g eslint
Minified files being checked¶
Add to excludes:
[javascript]
excludes = ["*.min.js", "dist/**", "build/**"]
Best Practices¶
- Use ES6+: Enable modern JavaScript features in ESLint config
- Consistent with TypeScript: If mixing JS/TS, use similar ESLint configs
- JSX support: For React projects, add
"plugin:react/recommended"to extends