在vim中使用tsconfig.json进行tsc with syntastic

时间:2015-12-05 06:52:12

标签: vim typescript syntastic

我希望使用syntastic的{​​{1}}插件在我使用vim编写打字稿文件时为我提供实时错误检查。我已在tsc中激活了tsc。关于如何让vim使用最近的父tsc个文件作为配置的任何建议?我发现默认情况下tsconfig.json没有这样做,这使tsc配置变得困难。谢谢!

编辑:我认为它不使用syntastic的原因是因为模块解析方法之类的选项似乎不起作用(“require”未定义),而且它也没有捕获我的定义文件在tsconfig.json中的files属性中定义。

我尝试解决这个问题失败了:

tsconfig.json

这导致Syntastic向我吐出这个错误:

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()]

这可能是因为它正在运行像app.ts|| TS5042: Option 'project' cannot be mixed with source files on a command line. 这样的命令,这是对该标志的非法使用......但我不明白为什么我tsc -p /path/to/project/ app.ts中的设置被{{{}}忽略了1}} :(

2 个答案:

答案 0 :(得分:19)

摘要

let g:syntastic_typescript_tsc_fname = ''添加到.vimrc

详细

romainl中提及的his answer,Typescript维基的"Using tsconfig.json"部分说明:

  

通过在没有输入文件的情况下调用tsc,在这种情况下,编译器将从当前目录开始搜索tsconfig.json文件并继续向上运行父目录链。

您可以Vim使用Syntastic.vimrc添加以下内容,如果您使用Janus .vimrc.after,则let g:syntastic_typescript_tsc_fname = '' 可以{ {3}}回答了LCD 047

worldOne0000011111222225355worldTwo0000011111222225355

答案 1 :(得分:2)

The wiki says:

  

使用tsconfig.json

     
      
  • 通过在没有输入文件的情况下调用tsc,在这种情况下,编译器将从当前目录开始搜索tsconfig.json文件并继续向上运行父目录链。

    < / LI>   
  • 通过调用tsc没有输入文件和-project(或只是-p)命令行选项来指定包含tsconfig.json的目录的路径文件

  •   
     

在命令行中指定输入文件时,将忽略tsconfig.json个文件。

所以,基本上,你需要找到一种方法来告诉Syntastic 而不是将文件名传递给tsc

我建议从现在开始使用他们的问题跟踪器。