Spec-Zone.ru › ESLint

Настройка параметров языка

Подсказка

На этой странице объясняется, как настроить параметры языка с помощью формата flat config. Для устаревшего формата eslintrc см. устаревшую документацию.

Экосистема JavaScript имеет различные среды выполнения, версии, расширения и фреймворки. Каждый из них может иметь разный поддерживаемый синтаксис и глобальные переменные. ESLint позволяет настроить параметры языка, специфичные для JavaScript, используемого в вашем проекте, например, пользовательские глобальные переменные. Вы также можете использовать плагины для расширения ESLint, чтобы поддерживать параметры языка вашего проекта.

Указание параметров JavaScript

ESLint позволяет указать параметры языка JavaScript, которые вы хотите поддерживать. По умолчанию ESLint ожидает самый последний синтаксис ECMAScript стадии 4 и режим модулей ECMAScript (ESM). Вы можете переопределить эти настройки, используя ключ languageOptions и указав одну или несколько из этих свойств:

  • ecmaVersion (по умолчанию: "latest") — указывает версию ECMAScript кода, который будет проходить проверку, определяя как синтаксис, так и доступные глобальные переменные. Установите значение в 3 или 5 для ECMAScript 3 и 5 соответственно. В противном случае вы можете использовать любой год между 2015 и текущим. В большинстве случаев рекомендуется использовать значение по умолчанию "latest", чтобы всегда использовать последнюю версию ECMAScript.
  • sourceType (по умолчанию: "module") — указывает режим используемого файла JavaScript. Возможные значения:
    • module — модуль ESM (недействителен, когда ecmaVersion равно 3 или 5). Ваш код имеет область видимости модуля и выполняется в строгом режиме.
    • commonjs — модуль CommonJS (полезно, если ваш код использует require()). Ваш код имеет область видимости функции верхнего уровня и выполняется в нестрогом режиме.
    • script — без модулей. Ваш код имеет общую глобальную область видимости и выполняется в нестрогом режиме.

Вот пример файла конфигурации, который вы можете использовать при проверке кода ECMAScript 5:

// eslint.config.js
export default [
    {
        languageOptions: {
            ecmaVersion: 5,
            sourceType: "script"
        }
    }
];

Указание параметров парсера

Если вы используете встроенный парсер ESLint, вы можете дополнительно изменить способ интерпретации кода ESLint, указав ключ languageOptions.parserOptions. Все параметры установлены по умолчанию false.

  • allowReserved — разрешить использование зарезервированных слов в качестве идентификаторов (если ecmaVersion равно 3).
  • ecmaFeatures — объект, указывающий какие дополнительные возможности языка вы хотите использовать:
    • globalReturn — разрешить операторы return в глобальной области видимости
    • impliedStrict — включить глобальный строгий режим (если ecmaVersion равно 5 или выше)
    • jsx — включить JSX

Вот пример файла конфигурации, который включает JSX-парсинг в стандартном парсере:

// eslint.config.js
export default [
    {
        languageOptions: {
            parserOptions: {
                ecmaFeatures: {
                    jsx: true
                }
            }
        }
    }
];
Важно

Обратите внимание, что поддержка синтаксиса JSX не равносильна поддержке React. React применяет специфические семантики к синтаксису JSX, которые ESLint не распознает. Рекомендуется использовать eslint-plugin-react, если вы используете React.

Указание глобальных переменных

Некоторые из основных правил ESLint опираются на знание глобальных переменных, доступных вашему коду во время выполнения. Поскольку эти переменные могут существенно различаться в разных средах и быть изменены во время выполнения, ESLint не делает предположений о существовании глобальных переменных в вашей среде выполнения. Если вы хотите использовать правила, которые требуют знания доступных глобальных переменных, вы можете определить глобальные переменные в файле конфигурации или с помощью комментариев конфигурации в вашем исходном коде.

Использование комментариев конфигурации

Чтобы указать глобальные переменные, используя комментарий внутри вашего файла JavaScript, используйте следующий формат:

/* global var1, var2 */

Это определяет две глобальные переменные, var1 и var2. Если вы хотите указать, что эти глобальные переменные могут быть записаны (а не только читаться), вы можете установить для каждой из них флаг "writable".

/* global var1:writable, var2:writable */

Использование файлов конфигурации

Чтобы настроить глобальные переменные внутри файла конфигурации, установите свойство конфигурации languageOptions.globals в объект, содержащий ключи, именованные в соответствии с каждой глобальной переменной, которую вы хотите использовать. Для каждого ключа глобальной переменной установите соответствующее значение в "writable", чтобы разрешить перезапись переменной, или в "readonly", чтобы запретить перезапись. Например:

// eslint.config.js
export default [
    {
        languageOptions: {
            globals: {
                var1: "writable",
                var2: "readonly"
            }
        }
    }
];

Эта конфигурация позволяет перезаписывать var1, но запрещает перезапись var2.

Глобальные переменные можно отключить, установив их значение в "off". Например, в среде, где большинство глобальных переменных доступны, но Promise недоступно, вы можете использовать такую конфигурацию:

// eslint.config.js
export default [
    {
        languageOptions: {
            globals: {
                Promise: "off"
            }
        }
    }
];
Подсказка

По историческим причинам, булевое значение false и строковое значение "readable" эквивалентны "readonly". Аналогично, булевое значение true и строковое значение "writeable" эквивалентны "writable". Однако использование этих устаревших значений не рекомендуется.

Предварительно определённые глобальные переменные

Помимо стандартных встроенных глобальных переменных ECMAScript, которые автоматически включаются на основе настроенного languageOptions.ecmaVersion, ESLint не предоставляет предопределенных наборов глобальных переменных. Вы можете использовать пакет globals, чтобы дополнительно включить все глобальные переменные для определённой среды. Например, вот как вы можете добавить console, наряду с другими глобальными переменными браузера, в свою конфигурацию.

// eslint.config.js
import globals from "globals";

export default [
    {
        languageOptions: {
            globals: {
                ...globals.browser
            }
        }
    }
];

Вы можете включить несколько различных коллекций глобальных переменных таким же образом. Следующий пример включает глобальные переменные как для веб-браузеров, так и для Jest:

// eslint.config.js
import globals from "globals";

export default [
    {
        languageOptions: {
            globals: {
                ...globals.browser,
                ...globals.jest
            }
        }
    }
];

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/use/configure/language-options

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API