Как быстро запускается 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
приведет к перекомпиляции каждого модуля.
Добавление функциональности часов может быть добавлено, но это будет запрос функции. Однако при работе с такой функцией возникают серьезные проблемы из-за особенностей среды выполнения.