Вот два распространенных стиля программирования при написании кода Js.
const foo = 'Foo'
const foo = "Foo";
Относительно использования одинарных или двойных кавычек, добавлять или не добавлять в конец строки;
можно использоватьESlintУнифицируйте стиль программирования при разработке.
ESlint
Инструменты могут не только унифицировать этот стиль, но и проверять код на грамматическое соответствие во время написания.
использование эслинта
- Установить
npm install eslint -g ## 为了使用 eslint cli 功能, 这里使用了全局安装
- Создайте новый проект в корневом каталоге проекта
.eslintrc
документ
{
"rules": {
"indent": 2,
"no-unused-vars": 2,
"no-alert": 2
},
"env": {
"browser": true
}
}
- новый
index.js
документ
var unused = 'I have no purpose!'
alert(unused)
function foo () {
var message = 'Hello, World!';
alert(message);
}
foo()
- использовать
eslint index.js
Проверьте код.
В командной строке выводятся три ошибки и возникает ошибка行:列
错误等级
错误说明
对应的 eslint rule
7:1 error Expected indentation of 4 spaces but found 8 indent
- использовать
--fix
параметры, чтобы решить проблему.
eslint index.js --fix
--fix
Этот параметр указывает ESLint попытаться исправить как можно больше проблем. Исправления вносятся только в сам файл, а остальные неисправленные проблемы выводятся. Не все проблемы можно решить с помощью этой опции.
Способ настройки ESlint
-
использовать
eslintrc.js
,eslintrc.json
,eslintrc.yml
,.eslintrc
конфигурация файла. -
Помимо использования файла конфигурации, его также можно настроить внутри файла.
eslint
правило.
// index.js
var unused = 'I have no purpose!'
// eslint-disable-next-line no-alert
alert(unused)
function foo () {
var message = 'Hello, World!';
// eslint-disable-next-line indent
console.log(message);
}
foo()
- существует
package.json
используется вeslintConfig
поля для настройки
{
"eslintConfig": {
"rules": {
...
},
"extends": []
}
}
Укажите поддерживаемую версию JavaScript
при использовании в кодеconst
let
ЖдатьES6
грамматика,ESlint
сообщит об ошибке.
Это потому чтоESlint
Поддержка по умолчаниюJavaScript
3 и 5 версии. вышеES
Поддержка синтаксиса требует ручной настройки.
ESlint
Параметры парсера можно использовать в файле конфигурацииparserOptions
настройки свойств. Доступные варианты:
-
ecmaVersion
Значение по умолчанию — 3, 5 (по умолчанию), вы можете использовать 6, 7, 8 или 9, чтобы указать версию ECMAScript, которую вы хотите использовать. Вы также можете использовать номер версии с названием года, чтобы указать 2015 (аналогично 6), 2016 (аналогично 7), 2017 (аналогично 8) или 2018 (аналогично 9) -
sourceType
Установите «скрипт» (по умолчанию) или «модуль» (если ваш код является модулем ECMAScript). -
ecmaFeatures
Это объект, представляющий дополнительные возможности языка, которые вы хотите использовать:-
globalReturn
Разрешить оператор возврата в глобальной области видимости -
impliedStrict
включить глобальныйstrict mode -
jsx
Включить JSX -
experimentalObjectRestSpread
Включить поддержку свойств rest/spread экспериментального объекта
-
{
"paarserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
}
}
::: tip
- , поддержка синтаксиса JSX не используется для поддержки React. React использует определенный синтаксис JSX, который ESLint не распознает. Если вы используете React и хотите получить семантическую поддержку React, используйтеeslint-plugin-react.
- Поддержка синтаксиса ES6 не означает поддержку новых глобальных переменных или типов ES6 (таких как новые типы, такие как Set), за исключением того, что вам нужно использовать
{ "parserOptions": { "ecmaVersion": 6 } }
включатьES6
поддержка синтаксиса, также требуется{"env": {"es6": true}}
(Когда эта конфигурация включена, сопряжение будет автоматически включеноES6
поддержка синтаксиса) :::
Настройка среды выполнения
Среда определяет предопределенный набор глобальных переменных.Js
При работе в разных средах будут разные глобальные переменные, например, вNode
будет существовать в окружающей средеglobal
переменная, при запускеbrowser
будет существовать вwindow
Переменная.ESlint
Глобальные переменные в коде будут идентифицированы в соответствии с текущей рабочей средой.Если среда выполнения не соответствует глобальным переменным, будет сообщено об ошибке.
Используйте ключевое слово env, чтобы указать среды, которые вы хотите включить в файле конфигурации, и установите для них значение true.
{
"env": {
"browser": true,
"node": true
}
}
более
env
Справочник по конфигурацииSpecifying Environments
Определение специальных глобальных переменных
При доступе к имени переменной, которое не определено в исходном файле,no-undef
Будет выдано предупреждение. Это доступно вESlint
используется в файле конфигурацииglobals
Установите только глобальную переменную.
{
"globals": {
"var1": true,
"var2": true
}
}
Таким образом, вы не можете определить в кодеvar1
var2
Эти две переменные используются напрямую.
Настройка правил
существуетESlint
Поставляется с большим количеством правил, вы можете использовать конфигурацию, упомянутую выше, чтобы добавить проектrules
правило.
кindent
Возьмем для примера правило, по умолчанию там четыре пробела.Когда вам нужно изменить это правило, вы можете написать его следующими способами:
// 使用默认4个空格。 错误等级为 2
"indent": 2
// 使用 2 个空格。 错误等级为 2
"indent": [2, 2]
// 使用 tab 缩进。 错误等级为 2
"indent": [2, "tab"]
// 缩进为2个空格, 同时,switch...case结构的case也必须缩进
"indent": [2, 2, {"SwitchCase": 2}]
можно увидеть,Rules
Правило конфигурации для представляет собой массив, который может содержать три параметра (только первый может быть строкой):
-
Первый параметр — это уровень ошибки, вы можете использовать 0 или
off
(не правило), 1 илиwarn
(включить правило, использовать ошибки уровня предупреждений, не вызывать выход из программы), 2 илиerror
(Включите правило, используйте ошибку уровня ошибки, это приведет к выходу из программы) -
Второй параметр — вариант правила, который в примере настраивается отдельно
indent
по умолчанию 4 пробела, 2 пробела,tab
отступ. -
Третий параметр — это дополнительный параметр, который используется в примере для включения
switch...case
Проверка отступа.
Расширить конфигурацию
ESlint
предоставляет множество настраиваемыхRules
, очень хлопотно настраивать по одному.ESlint
Поддержка наследования правил запуска из существующей конфигурации.
eslint:recommended
ESlint
при условииeslint:recommended
конфигурация, которая предоставляет набор основных правил, которые можно использоватьextends
свойства, чтобы наследовать эти правила.
"extends": "eslint:recommended"
::: tip
- eslint:recommendedОписаны описание и конфигурация по умолчанию для каждого правила.
-
extends
Когда есть только одно значение атрибута, это может быть строка, а когда их больше одного, это массив строк. :::
Другие наборы правил
В дополнение к наследованию по умолчаниюeslint:recommended
, также могут наследовать некоторые отличные наборы правил с открытым исходным кодом, такие какeslint-plugin-standard
, метод использования также относительно прост.
- Установить npm-пакет
npm install -D eslint-plugin-standard
- настроить
{
"extends": ["eslint:recommended", "standard"]
}
::: tip
- В ESlint при использовании внешних пакетов npm опустите предыдущий
exlint-plugin-
- Переопределить, если необходимо
extends
конфигурация в , можно найти вrules
перезаписать поле :::
Использование плагина
плагин этоnpm
Пакет, который обычно выводит одну или несколько именованных конфигураций правил. Выше сказано, чтоextends
свойства для наследования правил, мы можем использоватьplugins
атрибут для введенияnpm
пакет, затем используйтеextends
имущество, чтобы наследовать этоnpm
Набор правил для пакета.
- установить один
ESlint
изnpm
Мешок.
npm install eslint-plugin-react --save-dev
- использовать
plugins
плагин импорта атрибутов
{
"plugins": "react"
}
::: наконечник
В ESlint при использовании внешних пакетов npm опустите предыдущийexlint-plugin-
:::
- использовать
extends
Наследовать правило от плагина
{
"plugins": "react",
"extends": ["eslint:recommended", "plugin:react/recommended"]
}
игнорировать конфигурацию файла
Создайте один в корневом каталоге проекта.eslintignore
документация говоритESLint
игнорировать определенные файлы и каталоги..eslintignore
Файл представляет собой обычный текстовый файл, где каждая строка представляет собой шаблон глобуса, указывающий, какие пути следует игнорировать для обнаружения. Например, следующий код будет игнорировать все файлы JavaScript:
**/*.js
или также вpackage.json
конфигурация в файлеeslintIgnore
поле для указания игнорирования файлов
{
"eslintIgnore": ["hello.js", "world.js"]
}