Как быстро запускается Deno без запуска компилятора TypeScript в режиме «наблюдения» - PullRequest
0 голосов
/ 03 февраля 2019

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

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

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

1 Ответ

0 голосов
/ 04 февраля 2019

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

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

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

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

...