Смешивание модулей машинописи и JavaScript при запуске тестов Mocha - PullRequest
2 голосов
/ 27 мая 2019

tldr; Я хочу преобразовать мой JS-проект в TS-файл по одному за раз, имея возможность запускать тесты Mocha без шага сборки.

Я использую множество преобразований Бабеля (class props, jsx, ...) в моем текущем коде JavaScript, который Mocha обрабатывает во время выполнения, регистрируя загрузчик Babel (в основном mocha --require @babel/register). Это означает, что выполнение одного теста является быстрым и не требует этапа сборки для всего проекта.

Я следовал руководству по началу работы с TypeScript с использованием (относительно) нового плагина babel от Microsoft : @babel/preset-typescript. Это работало нормально для основного случая: преобразование app.js в app.ts.

То, что не было рассмотрено, это как сделать пошаговый переход. Для меня исправление 3978 ошибок машинописного текста (фактический счет после выполнения <code>find ... ) немного ошеломляет и остановит разработку на две недели. Просто получение моей 200 библиотек помощников LOC для хорошей компиляции с определениями из react-redux заняло больше часа.

Хотя работа git mv app.{j,t}s работала нормально, переход к любому другому файлу был катастрофой. Существующие тесты Mocha быстро рухнули из-за невозможности найти нужные файлы даже при регистрации Babel и добавлении подходящих расширений:

mocha --extension js,jsx,ts,tsx --require @babel/register

Обычно, если вы делаете git mv Logger.{j,t}s, я бы получил Error: Cannot find module './lib/logging/Logger'.

Есть ли способ заставить загрузчик модулей Mocha распознавать машинописные файлы и прозрачно запускать их через Babel?

...