{"repo":"Tencent/TSW","free":true,"listed":false,"github":"https://github.com/Tencent/TSW","clone":"git clone https://github.com/Tencent/TSW.git","description":"Tencent Server Web","language":"TypeScript","stars":1802,"topics":["nodejs","javascript","web","tsw","js","server","monitor","log","capture","observability"],"license":null,"category":"analytics","readme_excerpt":"Tencent Server Web 3.0 What is it Tencent Server Web(TSW) 是一套面向 WEB 前端开发者，以提升问题定位效率为初衷，提供 染色抓包 和 全息日志 的 Node.js 基础设施。TSW 关注业务的运维监控能力，适用于 http、https 协议的业务场景，可无缝与现有应用（Koa、Express）进行整合。 TSW 2.0 在 1.0 的基础上抽丝剥茧，辅以现代化的设计模式，去除了 1.0 中的大量糟粕，同时对容器化、云原生更加友好。做到了无侵入、低成本接入。 TSW 3.0 在 2.0 的基础上全面拥抱现代化 Node.js 生态： - ESM 优先 — 包本身以 ESM 发布，同时完整支持 CJS 和 ESM 用户应用 - Node.js = 24 — 利用最新的 V8 引擎和 Node.js 特性 - 使用 AsyncLocalStorage 替代 Domain Highlights 🚀 0 侵入 📒 全息日志 🛠 请求抓包 通过 Hack NodeJS 底层代码实现功能。对原有业务代码 0 侵入。 按照请求聚类的显微镜级别的全息日志，给开发者完美的现场还原。 可抓取 Server 端向外部发送的所有请求的完整包体内容，与后台沟通再无障碍。 从 2.0 迁移到 3.0 TSW 3.0 包含以下 Breaking Changes ： - Node.js = 24 — 不再支持 Node.js 24 以下版本 - ESM 包 — @tswjs/tsw 现在以 ESM 格式发布（ \"type\": \"module\" ），但用户应用不受影响，CJS 和 ESM 均可正常加载 - 配置文件 — 推荐使用 export default 语法（ .mjs 或在 \"type\": \"module\" 项目中使用 .js ）；传统的 module.exports 写法仍然兼容 - moment 移除 — 如果你的插件依赖了 TSW 内部的 moment，需要自行替换 Quick Start 1. 安装 2. 添加配置文件 配置文件是 TSW 启动时加载进运行时的配置文件，主要声明需要使用的 插件 列表。 默认会加载项目根目录下的 tswconfig.js 文件，也可以通过启动参数 -c 或者 --config 来手动指定配置文件路径。 TSW 3.0 同时支持 CJS 和 ESM 配置文件： ESM 配置（推荐） — 使用 .mjs 扩展名，或在 \"type\": \"module\" 的项目中使用 .js ： CJS 配置 — 传统写法仍然兼容： 参数列表 : Name Type default Optional Description :-: :-: :-: :-: :-: plugins Array - yes 插件列表 cleanLog boolean false yes 是否关闭默认打印 logLevel DEBUG/INFO/WARN/ERROR DEBUG yes 设置 log level winstonTransports Array - yes Winston日志通道 3. 启动 TSW CLI 支持加载 CJS（ .js ）和 ESM（ .mjs ）入口文件： 注意事项 ：原先 node --inspect ./index.js 中的 CLI 参数如 --inspect 需要转化为环境变量 NODE OPTIONS 来执行，如 NODE OPTIONS=\"--inspect\" npx @t","default_branch":null,"files":null,"tree":[],"storefront":"/r/Tencent","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Tencent/TSW/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}