【问题标题】:VSCode Intellisense TypeScript: Exclude path that is referenced in pathsVSCode Intellisense TypeScript:排除路径中引用的路径
【发布时间】:2020-10-13 11:55:49
【问题描述】:

我在一个 Angular 应用程序上工作,其中一些代码被分组到他们自己的 (npm) 项目中,以便其他应用程序可以引用它们。

当我在 app 文件夹中编写代码时,VSCode 的 Intellisense 建议自动导入以下路径,这两种路径都有效:

import 'FooComponent' from module "../../../projects/company/shared/src/foo/foo.component";
import 'FooComponent' from module "@company/shared";

我的目标是让"@company/shared" 导入成为默认选择。 如果可以完全隐藏相对路径,那就更好了。到目前为止我已经尝试过了:

  1. typescript.preferences.importModuleSpecifier: non-relative
  2. typescript.preferences.importModuleSpecifierEnding: minimal
  3. 指定路径后排除 tsconfig.json 中的目录。

到目前为止,这些还没有解决我的问题。

我有一个类似这样的 Angular 项目结构:

ApplicationName
  - dist
  - e2e
  - node_modules
  - projects
    - company
      - domain
      - shared
  - src
    - app
  tsconfig.json

tsconfig.json内,我在paths中引用了shared项目:

{ 
  "compilerOptions": {
    // standard stuff
    "baseUrl": "src",
    "paths": {
      @company/domain: [
        ../projects/company/domain/src/public-api
      ],
      @company/shared: [
        ../projects/company/shared/src/public-api
      ]
    },
    "exclude": [
      "./dist/**,",
      "**/projects/company"
    ]
}

有没有办法隐藏冗长的"../../../projects/company/shared/src/foo/foo.component" 导入建议?当foo 有多个自动完成建议时,它会占用默认值并添加噪音。

【问题讨论】:

    标签: typescript visual-studio-code path intellisense


    【解决方案1】:

    就我而言,我必须删除所有打字稿导入扩展(自动导入、打字稿英雄、打字稿导入器),然后将我的 : typescript.preferences.importModuleSpecifier 从相对更改为项目相对。

    【讨论】:

    • 是的!谢谢!我删除了 TypeScript Importer 扩展,现在一切正常。
    【解决方案2】:

    添加

    "typescript.preferences.importModuleSpecifier": "project-relative"

    vscode 中的settings.json 对我有用。

    我必须重新启动 TS 服务器才能显示。 (命令面板 --> Typescript: Restart TS Server.)

    现在默认的导入建议是@company/packageName,这正是我想要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-24
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 2018-07-18
      • 2011-03-16
      • 1970-01-01
      相关资源
      最近更新 更多