Скомпилируйте Typescript в модули ES собственного браузера

Как вы можете скомпилировать Typescript для работы с браузерами, которые поддерживают модули ES?

я использую <script type="module"> с module=es2015 в моем tsconfig, но я не могу написать пути импорта, которые работают для компилятора и среды выполнения.

Для браузера требуются полные пути импорта, а Typescript не преобразует расширение импорта во время компиляции.

Например, следующий фрагмент TS не изменяется во время компиляции.

import foo from "./foo.ts";
import bar from "./bar";

Когда он запускается в браузере, он отправляет два сетевых запроса на файлы, которые не существуют.

GET foo.ts -> (should be) GET foo.js
GET bar -> (should be) GET bar.js

1 ответ

Единственный способ достичь этого на данный момент - это использовать .js в вашем импорте TypeScript (хотя файл технически .ts).

// index.ts
import foo from "./foo.js";

// foo.ts
export default "foo";

Это работает только в TypeScript 2 и более современных версиях. Посмотрите эту проблему GitHub для большего контекста.

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