在 vim 中使用 tsconfig.json for tsc with syntastic
Use tsconfig.json for tsc with syntastic in vim
我想使用 vim
的 syntastic
插件在我使用 tsc
编写打字稿文件时为我提供实时错误检查。我已经在 vim
中激活了 tsc
。关于如何让 tsc
使用最近父级的 tsconfig.json
文件作为配置的任何建议?我发现 tsc
默认情况下不这样做,这使得 syntastic
配置困难。谢谢!
编辑:我认为它没有使用 tsconfig.json
的原因是因为像模块解析方法这样的选项似乎不起作用("require" 未定义),而且它也没有捕获我在 tsconfig.json
.
中的 files
属性中定义的定义文件
我解决这个问题的失败尝试:
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
被忽略了:(
Using tsconfig.json
By invoking tsc
with no input files, in which case the compiler searches for the tsconfig.json
file starting in the current directory and continuing up the parent directory chain.
By invoking tsc
with no input files and a -project
(or just -p
) command line option that specifies the path of a directory containing a tsconfig.json
file.
When input files are specified on the command line, tsconfig.json
files are ignored.
所以,基本上,您需要找到一种方法来告诉 Syntastic 不要 将文件名传递给 tsc
。
我建议从现在开始使用他们的问题跟踪器。
总结
将 let g:syntastic_typescript_tsc_fname = ''
添加到 .vimrc
。
详情
正如 Typescript wiki 的 romainl mentioned in , the "Using tsconfig.json" 部分所述:
By invoking tsc with no input files, in which case the compiler searches for the tsconfig.json
file starting in the current directory and continuing up the parent directory chain.
您可以在 Vim using Syntastic by adding the following to your .vimrc
, or .vimrc.after
if you use Janus, as found in LCD 047's answer to your Syntastic issue #1628 中执行此操作:
let g:syntastic_typescript_tsc_fname = ''
我想使用 vim
的 syntastic
插件在我使用 tsc
编写打字稿文件时为我提供实时错误检查。我已经在 vim
中激活了 tsc
。关于如何让 tsc
使用最近父级的 tsconfig.json
文件作为配置的任何建议?我发现 tsc
默认情况下不这样做,这使得 syntastic
配置困难。谢谢!
编辑:我认为它没有使用 tsconfig.json
的原因是因为像模块解析方法这样的选项似乎不起作用("require" 未定义),而且它也没有捕获我在 tsconfig.json
.
files
属性中定义的定义文件
我解决这个问题的失败尝试:
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
被忽略了:(
Using tsconfig.json
By invoking
tsc
with no input files, in which case the compiler searches for thetsconfig.json
file starting in the current directory and continuing up the parent directory chain.By invoking
tsc
with no input files and a-project
(or just-p
) command line option that specifies the path of a directory containing atsconfig.json
file.When input files are specified on the command line,
tsconfig.json
files are ignored.
所以,基本上,您需要找到一种方法来告诉 Syntastic 不要 将文件名传递给 tsc
。
我建议从现在开始使用他们的问题跟踪器。
总结
将 let g:syntastic_typescript_tsc_fname = ''
添加到 .vimrc
。
详情
正如 Typescript wiki 的 romainl mentioned in
By invoking tsc with no input files, in which case the compiler searches for the
tsconfig.json
file starting in the current directory and continuing up the parent directory chain.
您可以在 Vim using Syntastic by adding the following to your .vimrc
, or .vimrc.after
if you use Janus, as found in LCD 047's answer to your Syntastic issue #1628 中执行此操作:
let g:syntastic_typescript_tsc_fname = ''