vscode本身不运行node或swc,仅作为编辑器;配置核心是让其正确识别并调用本地已安装的node和swc工具链,需确保path包含对应可执行文件路径,并通过tsconfig.json与package.json脚本协同实现swc编译、监听及sourcemap支持。

VSCode 本身不运行 Node 或 SWC,它只是编辑器;真正起作用的是你本地安装的 Node 和 SWC 工具链——配置的核心是让 VSCode 正确识别、调用并反馈这些工具。
确认本地 Node 和 swc 可执行文件在 PATH 中
VSCode 的集成终端(Terminal → New Terminal)默认继承系统环境变量,但如果你在非登录 shell 下启动 VSCode(比如从桌面图标或 Dock 点开),PATH 可能不包含你通过 nvm 或 fnm 安装的 Node 路径。
- 在终端中运行
which node和which npx,确保输出非空且指向你期望的版本(例如/Users/xxx/.fnm/node-20.15.0/bin/node) - 如果
npx @swc/cli报错command not found,先全局安装:npm install -g @swc/cli @swc/core(或更推荐:项目级安装 +npx调用) - macOS 用户若用
zsh,检查~/.zshrc是否导出了PATH;Linux 桌面环境同理检查~/.profile或~/.bashrc
用 swc 替代 TypeScript 编译器(tsc)做保存时转译
这不是“VSCode 插件替代 tsc”,而是通过配置 tsconfig.json 启用 SWC 的编译能力,并配合脚本或任务触发。TypeScript 官方不支持直接用 SWC 当 tsc 替身,但 SWC 支持读取 tsconfig.json 并复用其中的 compilerOptions。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 在项目根目录运行:
npx @swc/cli --config-file ./tsconfig.json --no-swcrc --watch(加--watch实现保存即编译) - 为避免每次手动敲命令,可写入
package.json:"scripts": { "build:swc": "swc src -d lib --config-file tsconfig.json", "dev:swc": "swc src -d lib --config-file tsconfig.json --watch" } - VSCode 中按
Cmd+Shift+B(Mac)或Ctrl+Shift+B(Win/Linux)选择npm: dev:swc任务,即可后台运行 watch - 注意:
swc默认不处理.d.ts声明文件生成,如需类型声明,仍得保留tsc --emitDeclarationOnly单独跑一次
在 VSCode 中获得 SWC 编译后的代码提示和跳转(不是语法高亮)
SWC 编译是纯构建行为,不影响 VSCode 的语言服务。TypeScript 语言服务器(TSServer)依然只认 .ts 源码,不会读 lib/ 下的 JS 文件做智能提示。
- 想让 VSCode “理解” SWC 输出结果(比如跳转到编译后代码、查看内联类型),必须启用
outDir+declaration+sourceMap,并在jsconfig.json或tsconfig.json中设置"composite": true(仅限 TS 项目) - 更实际的做法:关闭 TSServer 对 JS 文件的检查(在设置里搜
javascript.suggestionActions.enabled设为false),专注编辑.ts源码,把lib/当作纯产物目录 - 如果用了
@swc/jest或vitest配合 SWC,测试运行时的报错堆栈可能指向lib/xxx.js—— 这时务必开启sourceMap: true,否则无法定位原始行号
真正容易被忽略的点是:SWC 的 jsc.target 配置(如 "es2022")和 TypeScript 的 target 不完全等价,某些新语法(如装饰器、const 断言)需显式启用 jsc.parser.decorators 或 jsc.experimental?.plugins,否则即使 tsconfig.json 开了 experimentalDecorators,SWC 也静默忽略。










