VSCode 找不到 node 是因未加载 shell 的 PATH,需 macOS 修改 ~/.zshrc 添加 export PATH="/usr/local/bin:$PATH" 并 source,Windows 重装 Node 时勾选“Add to PATH”或手动添加 C:\Program Files\nodejs\,重启 VSCode 前关闭所有窗口并用命令行启动。

VSCode 找不到 node,批量脚本根本跑不起来
不是插件没装,也不是脚本写错——node 命令在终端里能用,但在 VSCode 里执行批量任务(比如用 Node 脚本读取多个 .ts 文件生成 snippets)时直接报 command not found: node,说明 VSCode 启动时压根没加载 shell 的 PATH。
- macOS:检查
~/.zshrc或~/.bash_profile是否包含export PATH="/usr/local/bin:$PATH"(Homebrew 安装路径);改完必须source ~/.zshrc - Windows:重装 Node.js 时务必勾选 “Add to PATH”;若已安装,手动把
C:\Program Files\nodejs\加进系统环境变量的PATH - 重启 VSCode 前,关掉所有窗口,用命令行启动:
code --no-sandbox(macOS)或双击图标(Windows),避免继承旧 shell 环境
用 Node 脚本批量生成代码片段,fs.readFileSync 读 .ts 文件失败
常见错误是脚本在 VSCode 里运行时抛 ERR_MODULE_NOT_FOUND 或乱码,本质是模块解析和编码没对齐。
- 如果脚本本身是 ES Module(含
import),运行时要加--experimental-specifier-resolution=node参数 - 读
.ts文件时,fs.readFileSync默认用 utf-8,但 Windows 下某些编辑器保存的文件可能是 GBK;建议显式指定编码:fs.readFileSync(path, 'utf8') - 批量处理前,先用
path.extname(file) === '.ts'过滤,避免误读.d.ts或配置文件 - 别直接
require('./xxx.ts')——TS 文件需先编译或借助ts-node,而ts-node在批量脚本中容易卡住,优先用fs+ 正则提取内容
Snippets Generator 插件批量导出时 JSON 格式崩了
选中一堆 Express 路由代码点“生成 snippet”,结果 package.json 里多出非法字符或缩进错乱,导致 VSCode 加载失败。
ZenHeart zenlink 与 zenlink-mcp 为 OpenClaw,涵盖安装、MCP 注册、钩子接线、入站轮询及升级维护。
- 选中代码前,统一用空格缩进(禁用 Tab),插件会原样复制缩进,混用会导致 JSON 解析失败
- 占位符只写
$1、$2,别用${1}或$0——VSCode 片段语法不认后者 - 字符串内引号必须转义:
"const app = require(\"express\")",否则 JSON 解析直接报错 -
prefix别用server这种泛用词,建议加项目标识如myapp-server,防止覆盖已有片段
批量操作中调试子进程(如 fork 多个 worker)断点全失效
写了个批量编译脚本,用 child_process.fork() 并行处理几十个文件,但 VSCode 断点一个都不停——因为默认不附加子进程。
- 必须在
.vscode/launch.json中启用:"autoAttachChildProcesses": true -
fork()调用时得传execArgv:fork('./worker.js', [], { execArgv: ['--inspect-brk=9230'] }) - 主进程 launch 配置里
port必须和execArgv一致,且不能被其他进程占用;多个 worker 建议动态分配端口(如9230 + i) - 如果用了
ts-node启动主脚本,autoAttachChildProcesses会失效——换回原生node+tsc -w编译后执行
批量操作真正卡住的地方,往往不在逻辑层,而在环境继承、编码隐式转换、JSON 字符串边界这些“看不见”的环节。每次加新功能前,先验证 node -v 和 console.log(process.env.PATH) 在 VSCode 终端里是否和系统终端一致,省去后面大半排查时间。

















