Как быстро запускается Deno без запуска компилятора TypeScript в режиме "наблюдения"

Насколько я могу судить, Deno всегда компилирует TypeScript в JS при запуске и не имеет режима просмотра. Я также понимаю, что не существует такой вещи, как "инкрементная компиляция" для TypeScript, кроме режима просмотра TS. Так что, если кто-то хочет быструю компиляцию TS, нужно использовать режим просмотра.

Так что я ожидаю, что у Дено есть режим часов. Но это не так. Так как же быстро компилируется TS для Deno?

Примечание. Я знаю, что Deno использует снимок tsc для V8, поэтому tsc запускается быстро, но для больших проектов TS время запуска tsc будет меньше реального времени компиляции. Так что я не спрашиваю о снимках V8, я спрашиваю, какие еще хитрости использует Дено. Использует ли он демон сборки?

1 ответ

Решение

Deno кэширует на диске передаваемый вывод из TypeScript и использует его при последующих запросах модулей, если локальный исходный файл не изменился (или отсутствует --reload флаг для удаленных модулей).

Начиная с версии 0.2.8, TypeScript лениво создается, когда модуль TypeScript должен быть перенесен. Deno переносит модуль за модулем, а не весь проект, и кэширует результаты каждого отдельного модуля. Поэтому при внесении изменений в один файл переносится только этот модуль.

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

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

Другие вопросы по тегам