Используйте tsconfig.json для tsc с синтаксисом в vim
Я хочу использовать плагин syntastic
для vim
, чтобы дать мне реальную проверку ошибок, когда я пишу файлы typescript, используя tsc
. Я уже активировал tsc
в vim
. Любые предложения о том, как я мог бы получить tsc
для использования в качестве конфигурации ближайшего родительского файла tsconfig.json
? Я считаю, что tsc
не делает этого по умолчанию, что затрудняет конфигурацию syntastic
. Спасибо!
EDIT: Причина, по которой я думаю, что это не использование tsconfig.json
, объясняется тем, что такие параметры, как метод разрешения модуля, не работают ( "требуют" не определены), а также не ловят файлы определений, определенные в атрибуте files
в tsconfig.json
.
Моя неудачная попытка решить эту проблему:
let g:syntastic_typescript_checks=['tsc', 'tslint']
" typescript: find tsconfig.json
function! FindTypescriptRoot()
return fnamemodify(findfile('tsconfig.json', './;'), ':h')
endfunction
let g:syntastic_typescript_tsc_args=['-p', FindTypescriptRoot()]
Это приводит к тому, что Syntastic выплевывает мне эту ошибку:
app.ts|| TS5042: Option 'project' cannot be mixed with source files on a command line.
Это, вероятно, потому, что он выполняет команду типа tsc -p /path/to/project/ app.ts
, которая является незаконным использованием этого флага... Но я не понимаю, почему мои настройки в tsconfig.json
игнорируются syntastic
: (
Ответы
Ответ 1
Резюме
Добавьте let g:syntastic_typescript_tsc_fname = ''
в .vimrc
.
Подробнее
Как romainl, упомянутый в его ответе, "Использование tsconfig.json" в разделе wiki Typescript:
Вызывая tsc без входных файлов, в этом случае компилятор ищет файл tsconfig.json
, начиная с текущего каталога и продолжая цепочку родительских каталогов.
Вы можете сделать это в Vim с помощью Syntastic добавив следующее к вашему .vimrc
или .vimrc.after
, если вы используете Janus, как указано в LCD 047 ответьте на Синтаксическая проблема # 1628:
let g:syntastic_typescript_tsc_fname = ''
Ответ 2
Вики говорит:
Использование tsconfig.json
-
Вызывая tsc
без входных файлов, в этом случае компилятор ищет файл tsconfig.json
, начиная с текущего каталога и продолжая цепочку родительских каталогов.
-
Вызов tsc
без входных файлов и параметра командной строки -project
(или просто -p
), который указывает путь к каталогу, содержащему файл tsconfig.json
.
Когда входные файлы указаны в командной строке, файлы tsconfig.json
игнорируются.
Итак, в принципе, вам нужно найти способ сказать Syntastic не передавать имя файла tsc
.
Я бы предложил использовать свой трекер проблем с этого момента.