Настройка параметров языка
Экосистема 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
}
}
}
}
];
Указание глобальных переменных
Некоторые из основных правил 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"
}
}
}
];
Предварительно определённые глобальные переменные
Помимо стандартных встроенных глобальных переменных 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