StepanovYuriy / task-2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Задание 2. Напишите линтер

Запуск

Необходимо установить зависимости ( npm i ).

В корне проекта находится файл index.html для проверки в браузере.

Также возможен запуск с консоли командой npm run lint. В качестве аргумента передаётся строка

Команды npm

npm run build - Сборка итогового бандла linter.js

npm run watch - Сборка итогового бандла в режиме watch

npm run lint - Запуск функции lint под NodeJS

npm run test - Запуск автотестов на Jest

npm run jest - Запуск Jest в режиме watch

Сторонние библиотеки

Для обработки входной строки выбран пакет json-to-ast, который также используется в третьем задании. Преимуществом является удобный формат итоговых данных, а также реализованое получение данных о начале и конце блока в строке, полностью подходящее под условия задания.

Сборщик проекта

В качестве сборщика, как и в первом задании, был выбран webpack потому, что его первичная настройка требует минимум действий, а обилие загрузчиков и плагинов позволяет решать множество задач.

Размер итогового бандла 5% от лимита (1Мб) даже с учётом одной сторонней библиотеки.

Автотесты

В качестве средства для тестирования был выбран Jest потому, что подключение его в проект осуществляется максимально быстро и просто. Всё необходимое идёт в комплекте, в отличии от многих других популярных решений. Очень удобен режим watch, работающий по сохранению файлов.

Поскольку линтер будет использоваться в третьем задании, то в тесты занесены только примеры из README. Также этому поспособствовало очень скупое описание правил линтера, а также полное отсутствие автотестов на сервере проверки для правил блок grid (автотесты были приняты при реализации правил только для двух первых блоков warning и text). Поэтому тесты с граничными условиями, а также, в особенности, с многократной вложенностью не делались.

Поддержка и тестирование

Internet Explorer любой версии не поддерживается. При необходимости в конфигурационные файлы webpack и babel добавляются плагины или пакеты с полифилами.

Тестирование производилось в Яндекс.Браузер, Google Chrome, Mozilla Firefox и NodeJS последних версий.

About


Languages

Language:JavaScript 98.3%Language:HTML 1.7%