Необходимо установить зависимости ( npm i
).
В корне проекта находится файл index.html для проверки в браузере.
Также возможен запуск с консоли командой npm run lint
. В качестве аргумента передаётся строка
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
последних версий.