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?