vscode中如何配置scss的别名路径跳转?

bat*_*to3 5 sass node.js visual-studio-code vite

我的项目vite供电)中我使用别名。我已经配置了它,它们可以用于构建和跳转.ts

当我尝试跳转src/app.scss文件时遇到问题。

// case 1: vite OK, vscode: Fail
@import '$bs/bootstrap';

// case 2: vite Fail, vscode OK
@import '~bootstrap/scss/bootstrap';

Run Code Online (Sandbox Code Playgroud)
情况1

当我尝试使用 Ctrl + 单击查看文件的别名时,vscode 找不到该文件并询问我是否要创建它。 vscode 解决问题

案例2

对于 vscode 有一个别名~on node_modules,但是你无法在 vite 中编译该项目。 vite解决问题

我试过

Vite + tsconfig.json
// case 1: vite OK, vscode: Fail
@import '$bs/bootstrap';

// case 2: vite Fail, vscode OK
@import '~bootstrap/scss/bootstrap';

Run Code Online (Sandbox Code Playgroud)

tsconfig.joson(我创建的jsonfig.json)中:

vite: {
            resolve: {
                alias: {
                    '$bs': path.resolve('./node_modules/bootstrap/scss'),
                }
            }
Run Code Online (Sandbox Code Playgroud)

几个 vscode 扩展:

  • “wudy.vs-alias-jump”,
  • “paulgui.alias-jump”,
  • “svelte.svelte-vscode”,
  • “mariocadenas.alias-resolver”

        "paths": {
            "$lib": ["src/lib"],
            "$lib/*": ["src/lib/*"],
            "$bs/*": ["node_modules/bootstrap/scss/*"],
        }
    },
    "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.ts", "src/**/*.svelte"]
Run Code Online (Sandbox Code Playgroud)

~~//编辑1~~

~~我找到了一个可行的解决方案,但我对此并不完全满意。~~

是否可以以某种方式更改 vscode 解析器?

"vs-alias-jump.alias": {
    "$lib": "${folder}/src/lib",
    "$bs": "${folder}/node_modules/bootstrap/scss",
},
"aliasJump.alias": {
    "$bs": "/node_modules/bootstrap/scss",
},
"jumpToAliasFile.alias": {
    "$bs": "D:/dev/node/layout-test/sveltekit-attractions-ui-test/node_modules/bootstrap/scss",
}
Run Code Online (Sandbox Code Playgroud)

编辑2

我不知道会发生什么,但在其他电脑上这不起作用。(我看到一些关于发现新依赖项的 vite 消息,这开始工作......)