Почему Typescript-компилятор не обрабатывает .vue файлы?

Доброго дня.
Есть существующий проект на Vue, Typescript там используется не везде (где надо, пишем // @ts-check в начале файла). Сейчас начинаем типизировать сами .vue компоненты (раньше типизировалась только логика и внешние зависимости). Типы проверяются командой `tsc` в терминале.

Пытаюсь включить проверку, пишу в блоке "script" компонента "@ts-check". Visual Studio Code + Vetur немедленно подчеркивают красным ошибки и недочеты типизации в компоненте. Однако tsc в консоли по-прежнему ни на что не ругается!

Подумал, что, наверное, он просто по каким-то причинам не загружает .vue файлы. Посмотрел вывод `--traceResulution`, вижу это:
======== Resolving module './CodeRequester.vue' from 'C:/repositories/projectsrc/components/common/CodeRequester/index.js'. ========
Explicitly specified module resolution kind: 'NodeJs'.
Loading module as file / folder, candidate module location 'C:/repositories/projectsrc/components/common/CodeRequester/CodeRequester.vue', target file type 'TypeScript'.
File 'C:/repositories/projectsrc/components/common/CodeRequester/CodeRequester.vue.ts' does not exist.
File 'C:/repositories/projectsrc/components/common/CodeRequester/CodeRequester.vue.tsx' does not exist.
File 'C:/repositories/projectsrc/components/common/CodeRequester/CodeRequester.vue.d.ts' does not exist.
Directory 'C:/repositories/projectsrc/components/common/CodeRequester/CodeRequester.vue' does not exist, skipping all lookups in it.
Loading module as file / folder, candidate module location 'C:/repositories/projectsrc/components/common/CodeRequester/CodeRequester.vue', target file type 'JavaScript'.
File 'C:/repositories/projectsrc/components/common/CodeRequester/CodeRequester.vue.js' does not exist.
File 'C:/repositories/projectsrc/components/common/CodeRequester/CodeRequester.vue.jsx' does not exist.
Directory 'C:/repositories/projectsrc/components/common/CodeRequester/CodeRequester.vue' does not exist, skipping all lookups in it.
======== Module name './CodeRequester.vue' was not resolved. ========

Я понимаю, что ts ничего не знает о .vue-компонентах, и пытается обработать данные файлы понятными ему способами. Но как его научить их видеть? На просторах интернета видел массу инструкций, в основном они про связку webpack + vue-loader + ts-loader (внутри).

Мой же вопрос касается самого tsc вне вебпаков и vue-loader'ов.

Это возможно? Если да, то каким образом?
Заранее спасибо.
  • Вопрос задан
  • 309 просмотров
Пригласить эксперта
Ответы на вопрос 1

Это возможно? Если да, то каким образом?

Нет.

tsc это компилятор TypeScript-а. Почему компилятор TypeScript-а должен компилировать *.vue?
Если нужно включить компиляцию используйте vue-loader.


Visual Studio Code + Vetur немедленно подчеркивают красным ошибки

Поскольку Vetur это тот же vue-loader тольков внутри Visual Studio Code и я не удивлюсь что он использует vue-loader у себя внутри.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы