javascript - Pentru o configurație plată, cum rulez ESLint din linia de comandă?


Pentru eslint.config.js (configurație flat), ce comandă ar trebui să folosesc atunci când verific fișierele *.js recursiv din linia de comandă? 1


Cu eslintrc.js sau eslintrc.json, am folosit npx eslint . --ext .js, așa cum este sugerat aici. Până acum, a funcționat întotdeauna bine.

Dar când încerc asta cu eslint.config.js, răspunsul în linia de comandă este:

Opțiune invalidă ''--ext'' - poate ați vrut ''-c''? Folosiți eslint.config.js, unele opțiuni din linia de comandă nu mai sunt disponibile. Vă rugăm să consultați https://eslint.org/docs/latest/use/command-line-interface pentru detalii.

Nu am găsit nicio soluție la linkul sugerat.

Fișierul meu eslint.config.js se află în directorul în care încerc să rulez comanda lint. 2

import eslintJs from '@eslint/js';
import globals from 'globals';

export default [
  eslintJs.configs.recommended,
  {
    // files: ['**/*.js', '**/*.cjs', '**/*.mjs'], // = default, not needed
    languageOptions: { globals: { ...globals.node } },
    rules: { 'no-unused-vars': ['warn', { argsIgnorePattern: '^_' }] },
  },
];

package.json :

{
  "name": "flat-config",
  "devDependencies": {
    "eslint": "^8.52.0"
  },
  "private": true,
  "type": "module"
}

Am rulat npm install înainte de a rula npx eslint . --ext .js.

În scop demonstrativ, am un mic fișier bad-code.js :

const hiUnused = 'hi there';
const hello='Hello world';
const unusedFunc = function(unusedVariable) { console.log('hi!') }
consoler.log(hello);

Dacă și când ESLint funcționează, mă aștept să răspundă cu trei avertismente și o eroare.

warning  'hiUnused'       never used
warning  'unusedFunc'     never used
warning  'unusedVariable' never used
 error   'consoler'       not defined

1 Include eticheta TypeScript pentru că mă aștept ca întrebarea și răspunsurile corespunzătoare să fie foarte asemănătoare pentru TypeScript.

2 Include linia files: ['**/*.js', '**/*.cjs', '**/*.mjs'], pentru a indica că implicit, ESLint potrivește **/*.js, **/*.cjs și **/*.mjs. Comentarea acesteia sau lăsarea ei ar trebui să nu facă nicio diferență.

Răspuns #1

Ce comandă ar trebui să folosesc atunci când fac lint la fișierele *.js recursiv din linia de comandă?

Încearcă: 1

npx eslint **/*.js

Acesta va verifica toate fișierele *.js din directorul curent și toate subdirectoarele sale.
Comanda npx eslint **/*.js funcționează la fel de bine pentru fișierele de tip vechi .eslintrc.* cât și pentru cele noi eslint.config.js.

Pentru fișierul tău demo, bad-code.js, ESLint răspunde:

1:7   warning  'hiUnused' is assigned a value but never used    no-unused-vars
3:7   warning  'unusedFunc' is assigned a value but never used  no-unused-vars
3:29  warning  'unusedVariable' is defined but never used.
                  Allowed unused args must match /^_/u          no-unused-vars
4:1   error    'consoler' is not defined                        no-undef

^click pentru a mări


1 Acesta este din documentație. Doar filtrează tot ce ține de configurare.
(Ignoră ESLINT_USE_FLAT_CONFIG=true și --config some-other-file.js.)