Skip to content

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

  1. Use ES6+: Enable modern JavaScript features in ESLint config
  2. Consistent with TypeScript: If mixing JS/TS, use similar ESLint configs
  3. JSX support: For React projects, add "plugin:react/recommended" to extends