常用依赖推荐说明

9 阅读19分钟

依赖推荐说明

一、HTTP / 网络通信

依赖推荐版本用途说明
axios1.x基于 Promise 的 HTTP 客户端,支持请求/响应拦截器、自动转换 JSON、取消请求、防 XSRF 等浏览器端和 Node.js 端通用;支持请求重试、超时控制、并发请求(axios.all);相比 fetch API 封装更完善,内置错误处理和拦截器机制;官网:axios-http.com/
qs6.xURL 查询字符串的解析与序列化,支持嵌套对象、数组序列化URLSearchParams 功能更强,支持深度嵌套对象编码(如 a[b][c]=1)、数组多种编码风格(indices/brackets/repeat);可配置深度限制防止原型污染;常配合 axios 处理 POST 表单数据;官网:github.com/ljharb/qs
sockjs-client1.6.xSockJS 浏览器端客户端,提供类似 WebSocket 的 API,自动降级到轮询等传输方式当 WebSocket 不可用时自动降级为 xhr-streaming、xdr-streaming、eventsource 等传输方式,确保在代理/防火墙等受限网络环境下仍能通信;需配合服务端 SockJS 使用;官网:github.com/sockjs/sock…
@stomp/stompjs7.xSTOMP 协议(Simple Text Oriented Messaging Protocol)的 JavaScript 客户端在 WebSocket 之上提供发布/订阅消息模型,支持事务、确认机制、心跳检测;常用于与 RabbitMQ、ActiveMQ 等消息代理通信;替代旧版 stompjs,支持 TypeScript,API 更现代化;官网:stomp.github.io/

二、UI 组件库

依赖推荐版本用途说明
element-ui2.15.x饿了么出品的 Vue 2 桌面端组件库,含表单、表格、弹窗、导航等 60+ 组件仅支持 Vue 2;提供完整的中后台解决方案(布局、表单校验、数据表格、文件上传等);支持按需引入减小体积;国际化支持完善;Vue 3 项目需使用 Element Plus;官网:element.eleme.io/
element-plus最新Element UI 的 Vue 3 版本,基于 Composition API 重写继承 Element UI 的设计语言和 API 风格,全面支持 Vue 3 + TypeScript;支持暗色主题、按需引入;官网:element-plus.org/
vant4.x(Vue 3)/ 2.x(Vue 2)有赞出品的移动端 UI 组件库,含 70+ 高质量组件专为移动端 H5 设计,组件覆盖商品、购物车、地址编辑等电商场景;Vant 4 支持 Vue 3 + TypeScript,Vant 2 支持 Vue 2;支持按需引入、主题定制;官网:vant-ui.github.io/vant/
ant-design-vue4.xAnt Design 的 Vue 3 实现版本,企业级中后台 UI 组件库继承 Ant Design 的设计体系,组件覆盖表格(虚拟滚动)、表单、图表等企业场景;支持动态主题、国际化;需配合 unplugin-vue-components 实现按需加载;官网:antdv.com/
view-design4.xiView 的继任者,Vue 2 企业级 UI 组件库原 iView 3 更名而来,修复大量 Bug 并增加新组件;支持主题定制、国际化;如仍在用 iView 3 建议迁移至此;官网:www.iviewui.com/

三、工具函数

依赖推荐版本用途说明
lodash4.xJavaScript 实用工具库,提供数组、对象、字符串、函数等 300+ 工具函数常用方法:_.get(安全取值)、_.debounce(防抖)、_.throttle(节流)、_.cloneDeep(深拷贝)、_.groupBy(分组)等;推荐使用 lodash-es(ESM 版本,支持 tree-shaking)或按需引入 lodash/get 减小体积;官网:lodash.com/
dayjs1.x轻量级日期处理库,API 设计与 Moment.js 兼容体积仅 2KB(Moment.js 约 70KB),API 与 Moment.js 几乎一致(dayjs().format('YYYY-MM-DD')),迁移成本低;支持插件机制扩展(相对时间、季度、自定义解析等);官网:day.js.org/
date-fns4.x模块化、函数式的日期处理库每个函数独立导出,支持 tree-shaking,只打包使用到的函数(如只引入 formataddDays);纯函数式无副作用,TypeScript 支持完善;官网:date-fns.org/
js-cookie3.x简单轻量的 Cookie 读写库提供 Cookies.get/set/remove 等 API,支持 JSON 序列化、过期时间设置、路径/域名/Secure/SameSite 属性配置;比手动操作 document.cookie 更安全便捷;官网:github.com/js-cookie/j…
js-sha2560.11.xSHA-256/SHA-224 哈希计算库纯 JS 实现,无 Node.js 依赖,浏览器和 Node.js 通用;支持 HMAC-SHA256;常用于数据签名、完整性校验、密码哈希等场景;官网:github.com/emn178/js-s…
js-base643.xBase64 编解码库,支持 UTF-8 安全编解码提供 encode/decodeencodeURI/decodeURI(URL 安全版本)方法;相比 btoa/atob 原生方法,正确处理 Unicode/中文等多字节字符;官网:github.com/dankogai/js…
file-saver2.x客户端文件保存库,触发浏览器下载解决各浏览器文件保存的兼容性问题,支持 Blob 和 URL 两种方式;常配合 xlsx 或 html2canvas 等库实现导出下载功能;官网:github.com/eligrey/Fil…
normalize.css8.xCSS 重置库,消除浏览器默认样式差异统一各浏览器的 margin/padding/字体/表格等默认样式,作为项目 CSS 基础层使用;比 reset.css 更温和,保留有用默认值而非全部清零
nprogress0.2.x页面顶部细长进度条,指示页面加载或路由切换状态仿 YouTube 风格的顶部进度条;常配合 Vue Router 的 beforeEach/afterEach 钩子使用;API 简洁:NProgress.start() / done() / configure();官网:ricostacruz.com/nprogress/
path-to-regexp8.x将路径字符串(如 /user/:id)转换为正则表达式,用于路由匹配Express、Vue Router 等路由库的底层匹配引擎;支持命名参数、可选参数、通配符、自定义正则约束;可用于自定义路由或权限路径匹配场景;官网:github.com/pillarjs/pa…
bignumber.js9.x任意精度十进制运算库,解决 JavaScript 浮点数精度问题JavaScript 原生数字为 IEEE 754 双精度浮点,0.1 + 0.2 ≠ 0.3; BigNumber 可精确处理金融、区块链等对精度要求极高的计算场景;支持四则运算、取模、指数、比较等;官网:mikemcl.github.io/bignumber.j…
crypto-js4.xJavaScript 加密/解密工具库支持 MD5、SHA-1/SHA-256/SHA-512、HMAC、AES/DES/Triple DES/Rabbit 等常见加密算法;纯 JS 实现,浏览器和 Node.js 通用;常用于接口签名、敏感数据加密、密码哈希等场景;官网:github.com/brix/crypto…

四、二维码

依赖推荐版本用途说明
qrcode1.x二维码生成库,支持 Canvas、SVG、Terminal、Data URL 等多种输出方式可在浏览器端生成二维码图片(Canvas/SVG),也可在 Node.js 端生成二维码保存为文件;支持自定义尺寸、边距、颜色、容错等级;替代已停止维护的 qrcodejs2;官网:github.com/soldair/nod…

五、轮播 / 滑动

依赖推荐版本用途说明
swiper11.x(Vue 项目)/ 12.x(Web Component)现代化触摸滑动组件,支持轮播、画廊、缩略图、进度条等功能最全面的滑动组件,支持触摸/鼠标/键盘操作、自动播放、无限循环、视差效果、3D 切换动画等;注意:Swiper 9+ 移除了 swiper/vue 导出,改用 Web Component(swiper/element);Vue 项目建议锁定 v11 使用 swiper/vue 导出;官网:swiperjs.com/
slidePage3.x全屏垂直滑动组件,适用于 H5 营销页/邀请函等全屏翻页场景轻量级,支持触摸/鼠标滚轮滑动、动画回调、循环模式;相比 Swiper 更专注于全屏翻页场景
@better-scroll/2.x移动端滚动解决方案,解决移动端滚动卡顿、穿透等问题核心包 @better-scroll/core + 按需加载插件(mouse-wheel、observe-dom、slide、pullup 等);解决 iOS 弹性滚动、安卓滚动穿透、fixed 定位抖动等移动端特有问题;官网:better-scroll.github.io/docs/

六、视频 / 音视频

依赖推荐版本用途说明
video.js8.x开源 Web 视频播放器,支持 HTML5 视频和流媒体播放跨浏览器统一播放器 UI,自动降级到 Flash(旧版);支持 HLS、DASH 等流媒体协议;丰富的插件生态(广告、字幕、画质切换等);可自定义皮肤和控件;官网:videojs.com/
trtc-sdk-v55.x腾讯实时音视频 V5 版本 SDK,提供视频通话、语音通话、屏幕分享、低延迟直播等能力TRTC 新一代 Web SDK,API 设计更简洁,性能优化,支持更丰富的音视频能力;需配合 UserSig 签名使用;支持美颜、水印、混流等高级功能;新项目推荐使用此版本替代旧版 trtc-js-sdk
pdfjs-dist5.xMozilla PDF.js 的 npm 分发版,在浏览器中渲染和查看 PDF 文件纯 JavaScript 实现的 PDF 查看器,无需浏览器插件;支持文本选择、注释、打印、缩放、页码跳转;可通过 Worker 异步解析大文件;官网:mozilla.github.io/pdf.js/
pdfh51.x移动端 H5 PDF 预览组件专为移动端设计的 PDF 查看器,支持手势缩放、翻页动画、懒加载;适配微信浏览器和各移动端 WebView
jmuxer1.xH.264 裸流封装为 MP4 的库,用于将 H.264 视频流实时封装为浏览器可播放的 MP4 格式接收 H.264 NAL 单元,封装为 fMP4 片段,通过 Media Source Extensions(MSE)喂给 <video> 标签实时播放;常用于 WebSocket 推流场景(如远程桌面、监控画面)

七、H.264 / 视频编解码

依赖推荐版本用途说明
guacamole-common-js1.xApache Guacamole 协议的 JavaScript 客户端实现,用于通过 Web 浏览器访问远程桌面实现了 Guacamole 协议,支持 RDP、VNC、SSH 等远程桌面协议的 Web 化访问;配合 Guacamole 服务端使用,实现浏览器内远程桌面操作;注意:应为 dependencies 非 devDependencies;官网:github.com/padarom/gua…
gl-matrix3.x高性能 WebGL 矩阵/向量运算库提供 vec2/vec3/vec4、mat3/mat4、quat 等模块,用于 3D 图形变换(投影、旋转、平移等);替代旧版 sylvester.js,性能更好、API 更规范;官网:glmatrix.net/
@peculiar/webcrypto1.xWebCrypto API 的 polyfill 实现,在不支持 WebCrypto 的环境中提供加密能力实现了 W3C WebCrypto API 规范,支持 RSA/EC/AES/HMAC 等算法;当运行环境(如低版本 Node.js 或 WebView)不支持 crypto.subtle 时作为 polyfill 使用

八、虚拟键盘 / 输入

依赖推荐版本用途说明
simple-keyboard3.x虚拟屏幕键盘组件,提供可自定义的屏幕键盘 UI用于 VDI 远程桌面、Kiosk 自助终端、触屏设备等无物理键盘场景;支持多语言布局、自定义按键、数字键盘、输入验证;需同时引入 CSS 样式文件;官网:virtual-keyboard.js.org/

九、原生桥接 / 微信

依赖推荐版本用途说明
dsbridge3.xH5 与原生 App(Android/iOS)双向通信的桥接库提供同步/异步调用原生方法的能力,也支持原生调用 H5 方法;相比 JSBridge 更简洁,支持回调、事件监听;需原生端同步实现 DSBridge 协议;官网:github.com/wendux/DSBr…
weixin-js-sdk1.6.x微信 JS-SDK,使用微信提供的分享、支付、扫码、定位等能力仅在微信浏览器环境有效;需后端配合获取签名(access_token → jsapi_ticket → signature);常用功能:自定义分享内容、微信支付、扫一扫、获取地理位置、选择图片等;官网:developers.weixin.qq.com/doc/offiacc…

十、埋点 / 调试

依赖推荐版本用途说明
eruda3.x移动端浏览器调试控制台,提供类似 Chrome DevTools 的调试面板在手机浏览器中查看 Console 日志、Network 请求、DOM 元素、Storage 存储、CSS 样式等;通过 eruda.init() 一行代码启用;适合无法连接电脑调试的移动端 H5 场景;官网:eruda.liriliri.io/

十一、区块链 / Web3

依赖推荐版本用途说明
web34.x以太坊 JavaScript API,用于与以太坊节点交互读取链上数据(余额、合约状态)、发送交易、调用/部署智能合约、监听事件;v4 为 TypeScript 重写版本,模块化架构(web3-eth、web3-utils 等);官网:web3js.org/
ethers6.x以太坊交互库,提供钱包管理、合约调用、交易签名等功能与 web3.js 定位相同但设计理念不同:更注重安全性和简洁性;内置 Provider/Signer 抽象,合约交互更类型安全;v6 支持 ESM、树摇优化;官网:docs.ethers.org/
@walletconnect/web3wallet1.xWalletConnect 协议的 Web3 钱包实现,实现 DApp 与钱包的扫码连接WalletConnect 允许用户通过扫描二维码将 DApp 与移动端钱包连接,无需安装浏览器插件;此包实现了钱包端逻辑(会话管理、签名请求处理);官网:walletconnect.com/
@metamask/eth-sig-util7.xMetaMask 签名工具库,处理 EIP-712 类型化数据签名实现了 EIP-712(类型化结构数据签名)规范,用于生成和验证 MetaMask 风格的签名数据;常用于 DApp 与 MetaMask 钱包的签名交互场景
ethereumjs-util7.x以太坊工具函数集合,提供地址校验、私钥公钥转换、RLP 编解码等底层工具库,包含以太坊常用的编解码(RLP)、地址格式转换(EIP-55 校验和地址)、哈希计算、签名验证等基础操作
sm-crypto0.3.x国密算法库,实现 SM2/SM3/SM4 国产密码算法SM2 用于非对称加密/签名(替代 RSA),SM3 用于哈希(替代 SHA-256),SM4 用于对称加密(替代 AES);国内政务/金融项目合规要求使用国密算法

十二、Excel / 文档

依赖推荐版本用途说明
xlsx0.18.xExcel 文件读写库(SheetJS 社区版),支持 XLSX/XLS/CSV 等格式在浏览器端和 Node.js 端读写 Excel 文件;支持多 Sheet、样式、公式、合并单元格等;社区版免费但样式支持有限;注意:新版 SheetJS Pro 改为付费模式;官网:sheetjs.com/
jszip3.xZIP 压缩/解压库,创建、读取、修改 ZIP 文件XLSX 文件本质是 ZIP 压缩包(含 XML 文件),jszip 常配合 xlsx 库使用;也用于前端打包下载、解压上传文件等场景;支持异步 API、流式处理;官网:stuk.github.io/jszip/

十三、国际化

依赖推荐版本用途说明
vue-i18n8.x(Vue 2)/ 11.x(Vue 3)Vue.js 官方国际化插件,实现多语言切换提供 $t() 翻译函数、v-t 指令、插值、复数、日期/数字格式化;支持懒加载语言包、热更新;v8 对应 Vue 2,v9/v11 对应 Vue 3;官网:kazupon.github.io/vue-i18n/
i18next25.x独立于框架的国际化解决方案,功能最全面的 i18n 库不依赖任何前端框架,可与 React/Vue/Node.js 等任意环境配合;支持命名空间、插值、复数、上下文、语言回退等高级功能;配合 react-i18nextvue-i18next 适配各框架;官网:www.i18next.com/

十四、图表 / 可视化

依赖推荐版本用途说明
echarts5.x百度开源的数据可视化图表库,支持折线/柱状/饼图/地图/关系图等 20+ 图表类型功能全面,支持大数据量渲染、动画过渡、主题定制、数据缩放、组合图表;内置中国地图数据;支持 SVG/Canvas 双渲染模式;官网:echarts.apache.org/
gsap3.x高性能 JavaScript 动画库,用于创建流畅的 CSS/DOM/SVG/Canvas 动画动画性能优于 CSS 动画和 jQuery 动画;支持时间线(Timeline)编排复杂动画序列、ScrollTrigger 滚动驱动动画、SVG 路径动画;注意:商业使用需授权许可;官网:gsap.com/
animate.css4.x预置 CSS 动画效果库,提供 80+ 开箱即用的动画类名使用方式:给元素添加 animate__animated animate__fadeIn 等 class 即可触发动画;涵盖淡入淡出、弹跳、翻转、缩放、滑动等效果;适合快速添加页面过渡动画;官网:animate.style/

十五、Node.js 后端专用

依赖推荐版本用途说明
puppeteer25.xChrome/Chromium 浏览器自动化控制库,通过 DevTools Protocol 操控浏览器用于 RPA 自动化(表单填写、数据抓取、截图、PDF 生成)、UI 自动化测试、页面性能分析等;自带 Chromium,无需手动安装浏览器;支持无头模式(headless)和有头模式;v25 要求 Node ≥22.12;官网:pptr.dev/
prom-client15.xPrometheus 客户端库,在 Node.js 应用中暴露和上报指标提供 Counter/Gauge/Histogram/Summary 四种指标类型;内置默认指标(CPU、内存、事件循环等);配合 Prometheus pushgateway 实现指标推送,或配合 Grafana 可视化监控;官网:github.com/siimon/prom…
commander14.xNode.js 命令行程序开发框架,解析命令行参数和选项声明式定义命令、选项、参数;自动生成帮助信息(--help);支持子命令、可变参数、选项默认值;适合开发 CLI 工具;要求 Node ≥20;官网:github.com/tj/commande…
tough-cookie6.xCookie Jar 实现,管理 HTTP Cookie 的存储、匹配和序列化实现了 RFC 6265 规范,支持 Cookie 的域名/路径匹配、过期清理、HttpOnly/Secure/SameSite 属性;常配合 HTTP 客户端自动管理 Cookie;v6 为 ESM 模块;官网:github.com/salesforce/…
minimist1.2.x轻量级命令行参数解析器,将 process.argv 解析为对象极简实现(约 100 行代码),无依赖;将 --name=value 解析为 { name: 'value' }--flag 解析为 { flag: true };适合简单脚本场景
minimatch10.x文件路径 glob 模式匹配库,判断路径是否符合通配符规则实现 Bash 风格的 glob 匹配(***?[a-z] 等);常用于文件筛选、路径过滤;v3 有原型污染漏洞,建议升级至 v10
rimraf6.x跨平台递归删除目录/文件,相当于 rm -rf 的 Node.js 版本解决 Windows 下 rm -rf 不可用的问题,处理文件占用、权限等异常情况;常用于构建前清理输出目录、删除临时文件;v6 为 ESM 模块,要求 Node ≥20
terser5.xJavaScript 压缩混淆工具,将 JS 代码压缩为更小的体积替代已废弃的 uglify-es/uglify-js,完整支持 ES6+ 语法;支持删除死代码(tree-shaking)、变量名混淆、压缩输出;可通过 terser-webpack-plugin 集成到 Webpack;官网:terser.org/
json-schema0.4.xJSON Schema 验证库,根据 Schema 定义校验 JSON 数据结构定义数据格式规范(字段类型、必填、取值范围等),运行时校验数据是否符合规范;低频使用场景

十六、其他

依赖推荐版本用途说明
vue-clipboard20.3.xVue 2 剪贴板操作插件,封装 Clipboard.js 提供 v-clipboard 指令通过 v-clipboard:copy="text" 指令一键复制文本到剪贴板,支持复制成功/失败回调;Vue 3 项目推荐使用原生 navigator.clipboard.writeText() API
copy-webpack-plugin14.xWebpack 插件,将文件/目录从源路径复制到构建输出目录常用于复制静态资源(图片、字体、配置文件等)到 dist 目录;支持 glob 模式匹配、文件变换(transform)、过滤(filter);要求 Node ≥20.9
cnchar3.x中文汉字处理工具库,支持拼音、笔画、偏旁部首、繁体转换等常用功能:汉字转拼音、笔画数查询、按笔画排序、繁简转换;适合中文教育、搜索提示等场景;官网:github.com/nicethemes/…
watermark-dom2.xDOM 水印组件,在页面上叠加不可去除的防泄密水印生成覆盖全页面的文字/图片水印层,防止截图泄密;支持自定义水印文字、角度、密度、颜色;常用于企业后台系统防截屏场景

十七、仅支持 <script> 标签引入的依赖

以下库不支持 npm 安装,只能通过 HTML <script> 标签直接引入。

库文件全局变量说明
charting_library/TradingView 图表库(本地嵌入),提供专业金融 K 线图、技术指标图表;商业软件需授权;仅支持本地 script 引入

十八、已废弃依赖替换清单

以下依赖已废弃,建议按清单替换。

废弃依赖推荐替代 / 操作说明
requestaxiosnode-fetch已废弃,不再维护
querystringURLSearchParamsqs已废弃,与 qs 功能重叠
uglify-esterser已废弃,terser 完整支持 ES6+
md5-nodeNode.js 内置 crypto.createHash('md5')不再更新,Node.js 内置模块零依赖
log-timestamppino 或自定义不再更新
child_process / fs / http / path移除npm 上的安全占位包,Node.js 内置模块无需安装
babel-polyfillcore-js + @babel/preset-envuseBuiltIns已废弃,按需引入 polyfill 更优
babel-core / babel-preset-es2015@babel/core + @babel/preset-envBabel 6 体系已废弃,需整体迁移至 Babel 7
qrcodejs2qrcode不再维护,qrcode 功能更全面
vue-video-player直接使用 video.js不再更新,video.js 8 原生支持 Vue 集成
stompjs@stomp/stompjs不再更新,@stomp/stompjs 支持 TypeScript
sylvester.jsgl-matrix不再更新,gl-matrix 性能更好
tinyh264保留但移至 dependencies不再更新,
h264-converter保留但移至 dependencies不再更新

十九、VDI 远程桌面插件

1. ws-scrcpy(Netris MediaServer)

NetrisTV/ws-scrcpy(曾用名 ws-scrcpy,后更名为 Netris MediaServer),Apache 2.0 许可证。基于 WebSocket 的 Android 设备 Web 投屏方案,TypeScript 实现,支持多路复用(Multiplexer)在同一 WebSocket 上复用多个逻辑通道。

项目说明
功能通过 WebSocket 将 Android 设备画面实时投射到浏览器,并支持键鼠/触摸操控
实现协议scrcpy 私有协议(WebSocket 传输 H.264 视频流 + 二进制控制消息)
视频解码器(4 种,按优先级自动选择)① MsePlayer — 基于 h264-converter,使用浏览器 Media Source Extensions (MSE) 将 H.264 NAL 单元喂给 <video> 标签播放
② BroadwayPlayer — 基于 Broadway.js(WebAssembly H.264 解码器),纯 WASM 解码 + Canvas YUV 渲染,兼容性最好
③ WebCodecsPlayer — 使用浏览器原生 WebCodecs API (VideoDecoder) 硬件加速解码,性能最优但需 Chrome 94+
④ TinyH264Player — 基于 tinyh264(Web Worker + WASM 解码),YUV 渲染,作为兜底方案
控制消息按键(TYPE_KEYCODE)、文本输入(TYPE_TEXT)、触摸(TYPE_TOUCH)、滚动(TYPE_SCROLL)、返回/亮屏(TYPE_BACK_OR_SCREEN_ON)、剪贴板读写(TYPE_GET/SET_CLIPBOARD)、旋转设备(TYPE_ROTATE_DEVICE)、推送文件(TYPE_PUSH_FILE) 等
手势处理FeaturedInteractionHandler / SimpleInteractionHandler — 将浏览器触摸/鼠标事件转换为 scrcpy 控制消息
适用场景Android 设备/云手机的远程投屏与操控

2. guacamole-common-js(Apache Guacamole)

guacamole-common-js(Apache 2.0 许可证),Apache Guacamole 远程桌面网关的 JavaScript 客户端库。Guacamole 是一个无插件远程桌面网关,后端 guacd 代理 RDP/VNC/SSH 等协议,前端通过 WebSocket 与网关通信,无需直接处理远程桌面协议细节。

项目说明
功能在浏览器中访问远程桌面(RDP/VNC/SSH),通过 Guacamole 网关中转,前端无需安装插件
实现协议Guacamole 协议 — Apache Guacamole 自有的远程桌面网关协议,后端 guacd 代理 RDP/VNC/SSH 等协议
核心类Guacamole.WebSocketTunnel(WebSocket 隧道)、Guacamole.Client(客户端,渲染 Canvas)、Guacamole.Mouse.State(鼠标状态)
交互能力鼠标/触控事件 → Guacamole Mouse State 转发;键盘事件转发(sendKeyEvent);显示缩放(display.scale()
适用场景Windows/Linux 虚拟桌面的远程访问与操控(通过 Guacamole 网关代理 RDP/VNC/SSH 协议)

3. noVNC

noVNC(MPL 2.0 许可证),HTML5 VNC 客户端,使用 WebSocket 连接 VNC 服务器,纯浏览器端 Canvas 渲染,无需安装插件。

项目说明
功能在浏览器中访问 VNC 远程桌面,支持多种编码格式和加密认证
实现协议RFB 协议(Remote Framebuffer Protocol,即 VNC 协议,RFC 6143)
核心模块rfb.js(RFB 协议核心)、websock.js(WebSocket 高性能缓冲)、display.js(Canvas 渲染)、des.js(DES 加密,VNC 认证)、decoders/(Raw/CopyRect/RRE/Hextile/Tight 等编码解码器)、input/(键盘/手势输入)
连接方式new RFB(targetElement, url, options) — 支持 WebSocket 子协议传递认证信息
配置项scaleViewport(自适应缩放)、qualityLevel(图像质量)、compressionLevel(压缩级别)、viewOnly(只读模式)、showDotCursor(显示光标)
适用场景通用 VNC 远程桌面访问,适用于 Linux/轻量级虚拟机的远程操控