Доработка webpack template #1

Вводные

Есть темплейт web проетка: webpack template.

Не работает или работает плохо:
  • Очень странно и долго грузятся сурсмапы
  • Поддержка tern-project умерла
  • Не генерится code-coverage
  • Успел придумать еще несколько классов для cgn, вроде asset
  • Успел довольно много правил для eslint поменять

Процесс


Самое простое:

  • Обновить все зависимости
  • Откопировать .eslintrc и jsconfig из другого проекта 

Тесты


Теперь настройка тестов - karma coverage. Там была основная проблема, что конфигурации очень плохо друг на друга ложаться, поэтому нужно сначала настроить генерацию покрытия, а потом уже смотреть как запустить остальные тесты.

Нашел детальный пример на медиуме.

Ставлю все что предлагают (зачем разными командами? Не знаю, копировать было проще):
$ npm install karma --save-dev && npm install mocha --save-dev && npm install karma-mocha --save-dev && npm install --save-dev karma-webpack && npm install karma-sourcemap-loader --save-dev && npm install karma-chrome-launcher --save-dev && npm install babel-loader --save-dev && npm install karma karma-coverage --save-dev && npm i -D istanbul-instrumenter-loader && npm install karma-chai && npm install karma-mocha-reporter --save-dev

Почему-то karma-mocha-reporter к установке не сказано, но без него не запускается. Плагин karma-chai просто вырезал из списка, хз зачем оно.

...

Тесты проходят, но статистика не генерится:



...
Багульность всего этого конечно катастрофическая - при запуски через karma отваливаются пакеты, которые всю жизнь работали
Нифига конечно же не работает, поэтому идем в другом направлении, через istanbul плагин.

Чем все кончилось

Как всегда глупостью. Для сборки npm run unit-test стоял конфиг karma start karma.config.js --single-run. При этом по умолчанию вебпак у меня запускается в окружении production, без сурсмап.
В итоге только установить npm i -D karma-sourcemap-loader babel-plugin-istanbul и прописать пару полей по конифгам.

*Отвлекся на публикацию статистики в гитлабе, попутно наткнулся на хорошую доку от гитлаба по поводу уровней тестов.

Продолжаю

Попутно решил изменить структуру билдов:
Теперь все выходные данные идут в dist/

dist/reports/coverage
dist/reports/docs
dist/app


Comments

Popular posts from this blog

Как webgl рисует спрайты (И меши) и проблемы прозрачности