VSCode 配置 vue/css/png 等文件的路径自动补全推荐

1,985 阅读2分钟

近期遇到的一个痛点,在 .ts 文件里尝试 import .vue 文件的时候,编辑器并没有给出 .vue 文件的提示,所以不得不手动写全,不过还是觉得太麻烦了,后来找到了 VSCode 有两个插件可以解决这个问题。

  1. Path Intellisense(下文简称为 Path_I)
  2. Path AutoComplete(下文简称为 Path_A)

image.png

插件选择

捣鼓一下午最后选择了 Path AutoComplete,理由如下:

  • 能够同时和 TS 拓展插件的路径自动补全一起工作(Path_A 不行)
  • 可以在任何类型的文件内工作
  • 有更大的自定义的配置空间(比 Path_A 更多)

Path_A 的默认配置是不带文件拓展名,而且会在所有文件生效,所以同时也导致了一些路径推荐重复的问题,另外如果项目配置的路径别名的话,也需要同步相关配置。(Path_A 的文档中有提到会读取 tsconfig.json 的配置,但是好像并没有同步到路径别名)

自定义配置

为了让 Path_A 插件和 TS 还有 Volar 两个插件可以友好合作,所以需要一些额外的配置。

相关配置如下:

{
  // 在 setting.json 中
  ...
  
  "typescript.suggest.paths": true, // 启用 ts 插件的路径补全推荐
  "path-autocomplete.extensionOnImport": true, // 导入时保留文件拓展名
  "path-autocomplete.pathMappings": {
    "@": "${folder}/src"  // 设置路径别名 ${folder} 代表项目的根目录路径
  },
  "path-autocomplete.enableFolderTrailingSlash": false, // 文件夹末尾带左斜杠
  "path-autocomplete.excludedItems": {  // 忽略相关的配置,为了配置 ts 插件使用
    "**/{*.js,*.ts}": {
       "when": "**/{*.js,*.ts}", 
    }, // 在 js 和 ts 文件中时忽略掉 js 和 ts 文件的推荐
    "**": {
      "when": "**/{*.js,*.ts,*.vue}",
      "isDir": true 
    }, // 在 js、ts、vue 文件中忽略所有文件夹
    "**/*": {
      "when": "**/*.vue",
      "context": "(src)|(@import).*"
    }, // 在 vue 文件中,如果使用 src 或者 @import 时忽略所有文件(避免和 Volar 插件的推荐重复)
    "**/{*.vue,*.ts,*.js}": {
      "when": "**/*.vue",
      "context": "import.*"
    } // 在 vue 文件中,如果使用 import 时时忽略vue、ts、js文件(避免和 Volar 插件的推荐重复)
  }
}

最终效果

现在不仅有 vue 文件的路径补全,其实几乎任何类型文件能够自动补全了,包括 png/scss/less/svg 等等的任何文件。 image.png

image.png

我真棒!😋

参考文档

更多的配置可以看插件的文档