最轻量、跨平台、维护活跃的Node.js剪贴板库是clipboardy:纯JS实现,无需编译,支持Windows/macOS/Linux,API极简(read/write),底层调用系统命令如pbpaste/xclip/win32yank,需确保对应工具已安装并可访问。

VSCode 本身不直接提供 Node.js 环境下的剪贴板读写能力——它依赖你本地安装的 Node.js 运行时,以及你选择的第三方库(如 clipboardy 或 node-clipboard)来实现。VSCode 只是编辑器,不是运行环境;真正执行剪贴板操作的是你在终端里启动的 Node.js 进程。
Node.js 脚本里读写系统剪贴板要装什么库
最轻量、跨平台、维护活跃的是 clipboardy:
- 支持 Windows/macOS/Linux,无需原生编译(纯 JS 实现)
- API 极简:
clipboardy.read()和clipboardy.write('text') - 不依赖 Electron 或 VSCode 扩展机制,纯 Node 进程可用
- 注意:它底层调用系统命令(如
pbpaste、win32yank.exe、xclip),所以必须确保对应工具已安装或 PATH 可达
示例代码:
const clipboardy = require('clipboardy');
// 写入
clipboardy.write('hello from node').then(() => {
console.log('copied');
});
// 读取
clipboardy.read().then(text => {
console.log('pasted:', text);
});
为什么在 VSCode 终端里运行报错 "command not found"
常见错误信息:Error: Command failed: pbpaste / win32yank.exe / xclip -o —— 这说明 clipboardy 找不到系统剪贴板工具。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- macOS:
pbpaste和pbcopy是系统自带,一般没问题 - Windows:需安装
win32yank(clipboardy会自动尝试下载,但有时被防火墙拦截;可手动下载win32yank.exe放到%USERPROFILE%\AppData\Local\bin并加进 PATH) - Linux:必须安装
xclip或xsel,例如:sudo apt install xclip;Wayland 用户可能需要wl-clipboard - WSL 用户注意:剪贴板工具需在 WSL 内安装(如
sudo apt install xclip),且确保 DISPLAY 环境变量指向 Windows X Server(如 VcXsrv)或使用 WSLg
VSCode 调试模式下读写剪贴板是否受限
是的,尤其在 launch.json 启动调试时容易失败:
-
console类型的调试配置(如 Node.js 调试)默认不继承终端的完整 PATH,可能导致找不到xclip等命令 - 解决方法:在
launch.json中显式设置"env",例如:"env": { "PATH": "/usr/bin:/bin:/usr/local/bin" } - 更稳妥做法:改用
terminal类型的console,让调试进程直接复用集成终端环境 - 注意:VSCode 的 Debug Adapter Protocol(DAP)本身不暴露剪贴板 API,所有操作仍走 Node.js 子进程调用系统命令
别和 VSCode 插件剪贴板功能混淆
VSCode 自带的 vscode.env.clipboard API(用于扩展开发)和你在 Node.js 脚本里用的 clipboardy 完全无关:
-
vscode.env.clipboard只能在 VSCode 扩展的上下文中使用(即activate函数内),不能在普通 Node.js 脚本中 require - 你在终端里跑的
node script.js是独立进程,不访问 VSCode 的 Extension Host,也不共享其剪贴板权限 - 所以不要指望
require('vscode')在普通脚本里能工作——它不存在于 npm 包中,也不是 Node.js 原生模块
真正要打通的是「你的 Node.js 进程」和「操作系统剪贴板守护进程」之间的通路,而不是 VSCode 编辑器本身。

















