deno.enable必须设为true且仅限工作区设置,否则node.js项目会因强制deno类型检查导致require()、__dirname等报错;需在项目根目录.vscode/settings.json中配置,不可写入用户全局设置。

deno.enable 不能开在全局,否则 Node.js 项目直接崩
VSCode 的 vscode-deno 插件默认禁用,deno.enable 必须手动设为 true,但只允许写在工作区 .vscode/settings.json 里。一旦误加到用户级 settings.json,所有普通 JS/TS 项目(含 Node.js)都会被强制走 Deno 类型检查——require()、__dirname、process.env 全部标红报错,且无法跳转。
- 正确做法:在 Deno 项目根目录下运行
Cmd+Shift+P→ 输入并执行Deno: Initialize Workspace Configuration,它会自动生成带"deno.enable": true的.vscode/settings.json - Node.js 项目必须完全不带该字段;若需临时切到 Node 环境,删掉或注释掉这一行即可
- 别指望插件“自动识别项目类型”——VSCode 不看文件名或
package.json,只认这个开关
deno.path 和 node.runtimeExecutable 要分开放,不能共用 PATH
GUI 启动的 VSCode(比如 macOS 双击 Dock 图标)通常不继承 shell 的 PATH,导致 deno --version 在终端能跑,编辑器里却提示 “Deno not found” 或 “command 'deno.client.restart' not found”。同理,Node.js 调试器也可能找不到 node。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 先在 VSCode 集成终端(
Ctrl+`)里分别运行which deno和which node,拿到两个绝对路径,例如:/opt/homebrew/bin/deno和/usr/local/bin/node - 在 Deno 工作区的
.vscode/settings.json中只配deno.path,不碰node相关字段 - 在 Node.js 工作区的
.vscode/launch.json中,为每个调试配置显式指定"runtimeExecutable": "/usr/local/bin/node",不要依赖全局查找 - 如果用了 nvm/fnm/volta,路径必须指向具体版本二进制,比如
~/.nvm/versions/node/v20.15.0/bin/node,不能写node
混合项目里,tsconfig.json 和 deno.json 别打架
一个项目同时有 package.json(Node)和 deno.json(Deno),VSCode 默认只认一种语言服务。TypeScript 类型检查会冲突:Deno 期望 fetch 是全局变量,Node 项目却可能依赖 node-fetch 或 axios。
-
deno.json只影响deno lint/deno fmt,对类型提示无作用;tsconfig.json才真正控制 TS 编译行为 - 若项目主逻辑是 Node,但某些脚本想用 Deno CLI 运行(如
deno run --allow-read),保留deno.json,但确保tsconfig.json的"lib"包含["dom", "deno.ns"],否则Deno.cwd()会标红 - 反之,若主环境是 Deno,但要调用 Node.js 原生模块(极少见),需手动在
tsconfig.json中添加"types": ["node"],并用// @ts-ignore绕过部分检查 - 别试图让一个
tsconfig.json同时适配两者——Deno 不读tsconfig.json,Node 不认deno.json的compilerOptions
权限和运行命令必须手动区分,VSCode 不帮你选
编辑器里写 fetch("https://") 不报错,不代表能跑通。Deno 的 --allow-net、--allow-read 是运行时强制校验,VSCode 不参与执行,也不自动注入 flag。
- Node.js 脚本用
npm start或node index.js,Deno 脚本必须用deno run --allow-net --allow-read main.ts,两者命令不可互换 - 如果用 Code Runner 插件,需按语言分别配置:
"code-runner.executorMap"里为typescript设 Deno 命令,为javascript设 Node 命令 - 在
deno.json的"tasks"里定义带权限的脚本(如"dev": "deno run --allow-net --watch server.ts"),比每次手敲更可靠;但这些 task 对 Node.js 项目无效 - 调试时断点进不去?先确认
launch.json的"type"是"node"还是"pwa-node",Deno 不支持 VSCode 原生调试器,只能靠deno task+ 日志排查
.vscode 文件夹里的设置极易互相覆盖。别图省事把两个项目塞进同一个 workspace folder。










