【问题标题】:How to disable automatic ES6 import statements in Visual Studio 2017如何在 Visual Studio 2017 中禁用自动 ES6 导入语句
【发布时间】:2018-10-12 09:01:55
【问题描述】:

Reference to a similar question for VS Code

自从最近的更新之一以来,VS2017 在使用 tab/enter 自动完成 JS 语句时添加了自动导入。这导致了一些令人沮丧的事件,即它在使用 setTimeoutdocument 之类的东西时尝试导入一些遥远的模块。

在 VS Code 中,如引用的问题所示,可以将其关闭。我无法在 VS2017 中找到类似的设置。是否可以禁用或配置此行为?

此外,它还开始插入 sn-ps(例如,使用class)。是否也可以禁用/配置此设置?

我目前使用的是 15.6.7 版本。

【问题讨论】:

  • 你找到答案了吗?对类似问题的引用根本没有帮助
  • 认为您对 Salsa 语言服务的自动发现功能不满意。您可以使用 tsconfig.json 文件、enableAutoDiscovery 设置对其进行配置。详情are here.
  • 感谢@HansPassant,我能够找到解决方案。显然,如果没有tsconfig.json 文件,自动完成列表将列出setTimeout 的两个条目。一个是对原生 JS 实现的引用,另一个是对 NodeJS.Timers 的引用。当我将 tsconfig.json 文件放在项目的根目录中时(无论内容如何 - 它甚至可以为空!),Visual Studio 将停止建议 NodeJS.Timers 变体,并且我可以安全地使用 tab-autocomplete 而不导入不必要的文件.我不确定为什么会发生这种情况,或者它有什么其他后果,但对我来说这是一个解决方案。
  • 我之前提到的“解决方法”也需要至少一个.ts 文件,否则MSBuild 将失败并出现错误。
  • @IvoCoumans 请相应地发布答案。见Can I answer my own question?

标签: visual-studio visual-studio-2017


【解决方案1】:

作为一种解决方法,您可以在项目的根目录中创建一个(空的)tsconfig.json 文件。这将阻止 Visual Studio 尝试导入 NodeJS 库,这是导致我出现问题的原因。

请注意,如果您使用 MSBuild 构建项目(例如通过 TFS),您还需要在项目中添加至少一个 .ts 文件。这也可以是空的。例如,我在项目的根目录中添加了一个空的 empty.ts 文件。

它并不漂亮,但现在可以使用。

【讨论】:

    猜你喜欢
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多