VSCode是否应报告从编译中排除的TS文件的错误?

时间:2018-09-10 21:31:41

标签: javascript node.js typescript visual-studio-code tsconfig

我将此Bug Report提交给VSCode,因为我不想在NPM发行版中包括这些文件,因此已将*.spec文件从编译中排除。

我仍然希望通过VSCode工具正确编译它们。

按目前的情况,VSCode intellisense报告无法导入路径上可用的导入,这会引发很多错误,将项目规范文件涂成红色等。

在我的报告中,我说VSCode错误报告和编译应该是两个独立的问题。 VSCode既不能检查文件是否正确,又不能同时将其从编译中排除。两者不是互斥的。

我已经要求VSCode进行分类,但是到目前为止,这个问题仍然悬而未决,尽管如此,我还是想看看其他内容。是错误还是报告中的结论正确无误?

1 个答案:

答案 0 :(得分:1)

IIUC,目前,VS Code使用一个语言服务实例来处理tsconfig.json不包含的文件(包括tsconfig.json根本不存在的情况)以及默认的编译器选项,并且当{{ 1}}存在,它使用第二语言服务实例,该实例热切加载所有包含的文件并使用指定的编译器选项。我相信您提出的建议是,当tsconfig.json存在时,第一个语言服务实例应使用tsconfig.json中的编译器选项,但具有与现在相同的文件加载行为。这将稍微增加复杂性,说实话,tsconfig.json存在时编辑从tsconfig.json排除的文件的经验仍然会令人困惑:您的某些文件将看到全局定义,而另一些则不会,然后“查找所有引用”将为您提供部分结果。在我看来,您的建议似乎可以替代现状,但我不明白您为什么要为此与VS Code团队作斗争,而不仅仅是创建两个tsconfig.json文件,这很明显,可以为您提供您真正想要的统一编辑体验。 (或者您是在提议应该使用一种语言服务来忽略排除项,并急切地将所有tsconfig.json文件加载到项目目录下?我很确定这样做不会成功,因为它会在许多情况下引起问题)