<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>前端开发 | 折腾啥</title><description>Power Users/Automators 折腾/讨论/分享各种开源工具/脚本/自动化工作流👥 @zhetengsha_group📌 合集 https://t.me/zhetengsha/2🎁 恰饭 https://t.me/zhetengsha/957📢 广告投放 @xream @xream_botBuy ads: https://telega.io/c/zhetengshafeedId:55438372655431680+userId:62307599601855488</description><link>http://telegram.zhetengsha.eu.org</link><item><title>NameThatUI: UI 元素可视化词典• 用自然语言描述 UI 元素，获取标准名称、API 符号和可直接粘贴的 AI 编程提示词• 覆盖 Web 和 macOS 平台，包含 Carousel、Bento Grid、Masonry、Slider 等数十种组件• 支持 Name That Vibe 功能，帮你识别 UI 风格名称</title><link>http://telegram.zhetengsha.eu.org/posts/6556</link><guid isPermaLink="true">http://telegram.zhetengsha.eu.org/posts/6556</guid><pubDate>Mon, 27 Jul 2026 13:04:50 GMT</pubDate><content:encoded>&lt;div class=&quot;image-list-container image-list-odd&quot;&gt;
      &lt;button type=&quot;button&quot; class=&quot;image-preview-button image-preview-wrap&quot; popovertarget=&quot;modal-6556-0&quot; popovertargetaction=&quot;show&quot; aria-label=&quot;Open image preview: NameThatUI: UI 元素可视化词典• 用自然语言描述 UI 元素，获取标准名称、API 符号和可直接粘贴的 AI 编程提示词• 覆盖 Web 和 macOS 平台，包含 Carousel、Bento Grid、Masonry、Slider 等数十种组件• 支持 Name That Vibe 功能，帮你识别 UI 风格名称&quot;&gt;
        &lt;img src=&quot;/static/https://cdn5.telesco.pe/file/mTDBFCYE98H-65BwV24iQE891-Of25-miAATLuL83E23KJdSyvc2oLeG8K-HRNJPeuFShrLgpTMo7BraNX7jWtQ31m-iqV0KpRiCRMQiemGUqlB-cYaIwsogHvr5favII0u7z7PVjkpn7PeWPL47dZFUiMGEFVNIMsqbCD_Jmt9oGXCd3cFbZUb64w8A7wZBayArUjcyKf7Fx4q5p6uGVN17Yp2FB0IniO9ZLRt7OgV-b8h09EwIJipxTfvYiWvyEAuvfdRt-miKWxC1hpbs_Xk_v0JpKDMkg72TJdCaGd4nPySYcaCrfCd1QX-rMFDb_gSb-0QxnmLY4ApavnnMiQ.jpg&quot; alt=&quot;NameThatUI: UI 元素可视化词典• 用自然语言描述 UI 元素，获取标准名称、API 符号和可直接粘贴的 AI 编程提示词• 覆盖 Web 和 macOS 平台，包含 Carousel、Bento Grid、Masonry、Slider 等数十种组件• 支持 Name That Vibe 功能，帮你识别 UI 风格名称&quot; width=&quot;800&quot; height=&quot;506&quot; loading=&quot;eager&quot; /&gt;
      &lt;/button&gt;
      &lt;div class=&quot;modal&quot; id=&quot;modal-6556-0&quot; popover=&quot;auto&quot; aria-label=&quot;Image preview&quot;&gt;
        &lt;button type=&quot;button&quot; class=&quot;modal__backdrop&quot; popovertarget=&quot;modal-6556-0&quot; popovertargetaction=&quot;hide&quot; aria-label=&quot;Close image preview&quot;&gt;&lt;/button&gt;
        &lt;button type=&quot;button&quot; class=&quot;modal__close&quot; popovertarget=&quot;modal-6556-0&quot; popovertargetaction=&quot;hide&quot; aria-label=&quot;Close image preview&quot;&gt;×&lt;/button&gt;
        &lt;div class=&quot;modal__surface&quot;&gt;
          
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;&lt;u&gt;NameThatUI: UI 元素可视化词典&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;• 用自然语言描述 UI 元素，获取标准名称、API 符号和可直接粘贴的 AI 编程提示词&lt;br /&gt;&lt;br /&gt;• 覆盖 Web 和 macOS 平台，包含 Carousel、Bento Grid、Masonry、Slider 等数十种组件&lt;br /&gt;&lt;br /&gt;• 支持 Name That Vibe 功能，帮你识别 UI 风格名称&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://namethatui.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://namethatui.com&quot;&gt;https://namethatui.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327880277607583303.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;合集&quot;&gt;合集&lt;/a&gt; &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6021860481923288796.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha_group&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;群组&quot;&gt;群组&lt;/a&gt; &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327792445526380187.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/957&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;恰饭&quot;&gt;恰饭&lt;/a&gt; &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6330367862535884142.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt;&lt;a href=&quot;https://t.me/xream_bot&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;联系推广&quot;&gt;联系推广&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327836885552991740.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt;&lt;a href=&quot;/search/result?q=%23UI%E8%AE%BE%E8%AE%A1&quot; title=&quot;#UI设计&quot;&gt;#UI设计&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91&quot; title=&quot;#前端开发&quot;&gt;#前端开发&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23macOS&quot; title=&quot;#macOS&quot;&gt;#macOS&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Web&quot; title=&quot;#Web&quot;&gt;#Web&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23AI&quot; title=&quot;#AI&quot;&gt;#AI&lt;/a&gt;</content:encoded></item><item><title>AI Website Cloner Template: 用 Claude Code 自动重建高还原度网站克隆模板• 输入目标 URL 后执行 /clone-website，即可通过 Chrome MCP 自动完成页面侦察、设计 Token 提取、资源下载与组件规格生成• 基于 Next.js 16、React 19、TypeScript 与 Tailwind CSS v4 搭建，适合快速产出可继续二次开发的高保真页面• 采用并行 Agent + Git worktree 架构，按区块拆分构建并自动合并，同时支持视觉比对校验，减少手工还原成本</title><link>http://telegram.zhetengsha.eu.org/posts/5458</link><guid isPermaLink="true">http://telegram.zhetengsha.eu.org/posts/5458</guid><pubDate>Thu, 23 Apr 2026 10:15:22 GMT</pubDate><content:encoded>&lt;video src=&quot;/static/https://cdn5.telesco.pe/file/a0a68f069e.mp4?token=ZSA2cFnwWAbaaHUUWyK-MWqm7071aVvmkRsCx_M3cOdoW-n-ii18aSzSne-TEXhuwjc8z-FZKNIS6WVCXdvIQHJuNcd_CBEA8dg6UVymQYzRRkLxZWQ1JdIqiSI1PX0wwPxu307vuQXZYZ_-yUSUXmA-8K4ayEnkBh8LoMG_0haUJUnO-kquy6JjTWIluuMZbnXAwfOQu1NBXvSKtOMCKLVIuqa61Sv-n0kPAY7gZBgBrmEGdAzywUHDPukp1FJxZaKmFk6eBgSmBdDakCbEWV4xWyAjPGlERSNVcFXUHn4tXGyXJWBJA_nUTnie-KuyK8fy2Rdv42v2NT9ClGNb9hGJ6yBy53wLbvu7_3iNVe5Vo4W-qaD9mSvPpiLhRS_YMWYIuCjg2CTmByDigaxcSZ189Z4WegRwSrUUhYx9nl_FGBpyZHj6FpFLvx6BFXBTp51P_RHErLVxSxuVfNpYsCk7XHOj7ZaaCBv-h5MTwsGaSDd9GCrsaWEVFWrRinWqGic16Zvo5e7iuMSGHWtrT03c93R7Lf4vqAPTfRvwV8UZrDY-RifTcINDFj3Nzb81TS2f-cuzGCAMwNlsD0GOZovgJdIGVFd6GTgYWYuj-9X7ISeWXGTnpQCSIE6j4xUOXH2x9C2t0maBWTUpFBvo2Hv0QKornfcUQNqLXhb4pFY&quot; class=&quot;tgme_widget_message_video js-message_video&quot; width=&quot;100%&quot; height=&quot;100%&quot; controls preload=&quot;auto&quot; playsinline webkit-playsinline&gt;&lt;/video&gt;&lt;u&gt;AI Website Cloner Template: 用 Claude Code 自动重建高还原度网站克隆模板&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;• 输入目标 URL 后执行 /clone-website，即可通过 Chrome MCP 自动完成页面侦察、设计 Token 提取、资源下载与组件规格生成&lt;br /&gt;&lt;br /&gt;• 基于 Next.js 16、React 19、TypeScript 与 Tailwind CSS v4 搭建，适合快速产出可继续二次开发的高保真页面&lt;br /&gt;&lt;br /&gt;• 采用并行 Agent + Git worktree 架构，按区块拆分构建并自动合并，同时支持视觉比对校验，减少手工还原成本&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://github.com/JCodesMore/ai-website-cloner-template&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://github.com/JCodesMore/ai-website-cloner-template&quot;&gt;https://github.com/JCodesMore/ai-website-cloner-template&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327880277607583303.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;合集&quot;&gt;合集&lt;/a&gt; &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6021860481923288796.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha_group&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;群组&quot;&gt;群组&lt;/a&gt; &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327792445526380187.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/957&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;恰饭&quot;&gt;恰饭&lt;/a&gt; &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6330367862535884142.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt;&lt;a href=&quot;https://t.me/xream_bot&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;联系推广&quot;&gt;联系推广&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327836885552991740.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;/search/result?q=%23AI&quot; title=&quot;#AI&quot;&gt;#AI&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23ClaudeCode&quot; title=&quot;#ClaudeCode&quot;&gt;#ClaudeCode&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E7%BD%91%E7%AB%99%E5%85%8B%E9%9A%86&quot; title=&quot;#网站克隆&quot;&gt;#网站克隆&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91&quot; title=&quot;#前端开发&quot;&gt;#前端开发&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Nextjs&quot; title=&quot;#Nextjs&quot;&gt;#Nextjs&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23TypeScript&quot; title=&quot;#TypeScript&quot;&gt;#TypeScript&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23TailwindCSS&quot; title=&quot;#TailwindCSS&quot;&gt;#TailwindCSS&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23GitHub&quot; title=&quot;#GitHub&quot;&gt;#GitHub&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E8%87%AA%E5%8A%A8%E5%8C%96%E5%B7%A5%E4%BD%9C%E6%B5%81&quot; title=&quot;#自动化工作流&quot;&gt;#自动化工作流&lt;/a&gt;</content:encoded></item><item><title>wterm: 面向 Web 的高性能终端模拟器• 基于 Zig + WASM 构建核心，终端解析能力轻量且接近原生性能• 采用 DOM 渲染，天然支持文本选择、复制粘贴、浏览器查找和无障碍访问• 提供 WebSocket 传输、React 组件、自动尺寸适配与备用屏支持，适合远程终端和嵌入式开发场景</title><link>http://telegram.zhetengsha.eu.org/posts/5396</link><guid isPermaLink="true">http://telegram.zhetengsha.eu.org/posts/5396</guid><pubDate>Fri, 17 Apr 2026 00:02:18 GMT</pubDate><content:encoded>&lt;div class=&quot;image-list-container image-list-odd&quot;&gt;
      &lt;button type=&quot;button&quot; class=&quot;image-preview-button image-preview-wrap&quot; popovertarget=&quot;modal-5396-0&quot; popovertargetaction=&quot;show&quot; aria-label=&quot;Open image preview: wterm: 面向 Web 的高性能终端模拟器• 基于 Zig + WASM 构建核心，终端解析能力轻量且接近原生性能• 采用 DOM 渲染，天然支持文本选择、复制粘贴、浏览器查找和无障碍访问• 提供 WebSocket 传输、React 组件、自动尺寸适配与备用屏支持，适合远程终端和嵌入式开发场景&quot;&gt;
        &lt;img src=&quot;/static/https://cdn5.telesco.pe/file/SeyvijgSneSGjHem7SK-zjIXNAmWCbfzgHUaekUFb4lGAmoRvXSO3CDmt8y9JG9AZSpTuSt_EOv55U9qCL9slBNwk5lS_hI1x2iUwLLHKABHyRcqiC9RRqdNvl5EArL1lhoI9kEZLKUzVcWJVyO6yJV0pDQb17w_6T_An0vm5RmwYVVZ0zfryl4Bo98SbUmLKYzrk1ujXnKGK_OpSkdVXek9XnnC0GMW75294Ml_XusGre5rBNexGV-59xxoGTWnPOx52zyiucOfp0Y_ETJaKgK4dgVxdMHO7hPsr06aiti3wiO-w63oleASZDUgAU66QWj5DWtoIJYlclD2y7tv1A.jpg&quot; alt=&quot;wterm: 面向 Web 的高性能终端模拟器• 基于 Zig + WASM 构建核心，终端解析能力轻量且接近原生性能• 采用 DOM 渲染，天然支持文本选择、复制粘贴、浏览器查找和无障碍访问• 提供 WebSocket 传输、React 组件、自动尺寸适配与备用屏支持，适合远程终端和嵌入式开发场景&quot; width=&quot;800&quot; height=&quot;534&quot; loading=&quot;eager&quot; /&gt;
      &lt;/button&gt;
      &lt;div class=&quot;modal&quot; id=&quot;modal-5396-0&quot; popover=&quot;auto&quot; aria-label=&quot;Image preview&quot;&gt;
        &lt;button type=&quot;button&quot; class=&quot;modal__backdrop&quot; popovertarget=&quot;modal-5396-0&quot; popovertargetaction=&quot;hide&quot; aria-label=&quot;Close image preview&quot;&gt;&lt;/button&gt;
        &lt;button type=&quot;button&quot; class=&quot;modal__close&quot; popovertarget=&quot;modal-5396-0&quot; popovertargetaction=&quot;hide&quot; aria-label=&quot;Close image preview&quot;&gt;×&lt;/button&gt;
        &lt;div class=&quot;modal__surface&quot;&gt;
          
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;&lt;u&gt;wterm: 面向 Web 的高性能终端模拟器&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;• 基于 Zig + WASM 构建核心，终端解析能力轻量且接近原生性能&lt;br /&gt;&lt;br /&gt;• 采用 DOM 渲染，天然支持文本选择、复制粘贴、浏览器查找和无障碍访问&lt;br /&gt;&lt;br /&gt;• 提供 WebSocket 传输、React 组件、自动尺寸适配与备用屏支持，适合远程终端和嵌入式开发场景&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://github.com/vercel-labs/wterm&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://github.com/vercel-labs/wterm&quot;&gt;https://github.com/vercel-labs/wterm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327880277607583303.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;合集&quot;&gt;合集&lt;/a&gt; &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6021860481923288796.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha_group&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;群组&quot;&gt;群组&lt;/a&gt; &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327792445526380187.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/957&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;恰饭&quot;&gt;恰饭&lt;/a&gt; &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6330367862535884142.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt;&lt;a href=&quot;https://t.me/xream_bot&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;联系推广&quot;&gt;联系推广&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327836885552991740.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;/search/result?q=%23Web%E7%BB%88%E7%AB%AF&quot; title=&quot;#Web终端&quot;&gt;#Web终端&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E7%BB%88%E7%AB%AF%E6%A8%A1%E6%8B%9F%E5%99%A8&quot; title=&quot;#终端模拟器&quot;&gt;#终端模拟器&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23WASM&quot; title=&quot;#WASM&quot;&gt;#WASM&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Zig&quot; title=&quot;#Zig&quot;&gt;#Zig&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23React&quot; title=&quot;#React&quot;&gt;#React&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23WebSocket&quot; title=&quot;#WebSocket&quot;&gt;#WebSocket&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7&quot; title=&quot;#开发工具&quot;&gt;#开发工具&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD&quot; title=&quot;#前端基础设施&quot;&gt;#前端基础设施&lt;/a&gt;</content:encoded></item><item><title>#优质博文 #JavaScript #新特性 #前端 #错误处理Error chaining in JavaScript: cleaner debugging with Error.cause</title><link>http://telegram.zhetengsha.eu.org/posts/4114</link><guid isPermaLink="true">http://telegram.zhetengsha.eu.org/posts/4114</guid><pubDate>Sat, 15 Nov 2025 04:03:40 GMT</pubDate><content:encoded>&lt;div class=&quot;tgme_widget_message_forwarded_from accent_color&quot;&gt;Forwarded from &lt;a class=&quot;tgme_widget_message_forwarded_from_name&quot; href=&quot;https://t.me/cosine_front_end/3053&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;cosine - 前端人の日常频道&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href=&quot;/search/result?q=%23%E4%BC%98%E8%B4%A8%E5%8D%9A%E6%96%87&quot; title=&quot;#优质博文&quot;&gt;#优质博文&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23JavaScript&quot; title=&quot;#JavaScript&quot;&gt;#JavaScript&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%96%B0%E7%89%B9%E6%80%A7&quot; title=&quot;#新特性&quot;&gt;#新特性&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF&quot; title=&quot;#前端&quot;&gt;#前端&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86&quot; title=&quot;#错误处理&quot;&gt;#错误处理&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://allthingssmitty.com/2025/11/10/error-chaining-in-javascript-cleaner-debugging-with-error-cause/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Error chaining in JavaScript: cleaner debugging with Error.cause&quot;&gt;Error chaining in JavaScript: cleaner debugging with Error.cause&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;tg-expandable&quot;&gt;
      &lt;input type=&quot;checkbox&quot; id=&quot;expand-2-0&quot; class=&quot;tg-expandable__checkbox&quot; aria-label=&quot;Toggle hidden content&quot; aria-controls=&quot;expand-2-0-content&quot; /&gt;
      &lt;div id=&quot;expand-2-0-content&quot; class=&quot;tg-expandable__content&quot;&gt;AI 摘要：本文介绍了在 JavaScript (ES2022) 中引入的 Error.cause 属性，展示它如何让错误处理更具可追溯性。作者 Matt Smith 通过实例说明了传统错误包裹的缺陷，以及 Error.cause 在保持原始堆栈信息、改进调试体验和测试断言方面的优势。最终总结出一套现代错误链最佳实践，帮助开发者构建更清晰、更稳健的错误追踪体系。&lt;/div&gt;
      &lt;label for=&quot;expand-2-0&quot; class=&quot;tg-expandable__toggle&quot;&gt;&lt;span class=&quot;sr-only&quot;&gt;Toggle hidden content&lt;/span&gt;&lt;/label&gt;
    &lt;/div&gt;&lt;br /&gt;[以下是方便搜索索引的大纲(AI 生成)，请读原文]&lt;br /&gt;&lt;div class=&quot;tg-expandable&quot;&gt;
      &lt;input type=&quot;checkbox&quot; id=&quot;expand-2-1&quot; class=&quot;tg-expandable__checkbox&quot; aria-label=&quot;Toggle hidden content&quot; aria-controls=&quot;expand-2-1-content&quot; /&gt;
      &lt;div id=&quot;expand-2-1-content&quot; class=&quot;tg-expandable__content&quot;&gt;1.  传统错误处理的问题&lt;br /&gt;•   层层调用的代码容易丢失原始错误信息；&lt;br /&gt;•   以字符串拼接错误信息会破坏堆栈和错误类型；&lt;br /&gt;•   导致调试困难，追踪难度高。&lt;br /&gt;&lt;br /&gt;2.  引入 Error.cause 的改进&lt;br /&gt;•   通过 new Error(message, { cause }) 保留原始错误；&lt;br /&gt;•   可同时访问顶层与底层堆栈信息；&lt;br /&gt;•   cause 属性为非枚举属性，不污染日志或循环输出；&lt;br /&gt;•   与 message、stack 一样保持一致的行为。&lt;br /&gt;&lt;br /&gt;3.  实践与代码演示&lt;br /&gt;•   示例：从 JSON.parse 到自定义函数的错误传递；&lt;br /&gt;•   在日志中手动输出 err.cause 获取完整上下文；&lt;br /&gt;•   适合层次式系统（如服务嵌套调用）排查问题。&lt;br /&gt;&lt;br /&gt;4.  历史背景与 cause 出现前的替代方案&lt;br /&gt;•   旧方案包括自定义字段 .originalError、字符串拼接等；&lt;br /&gt;•   这些方式不统一且容易破坏原始错误结构；&lt;br /&gt;•   标准化的 cause 提供更安全一致的机制。&lt;br /&gt;&lt;br /&gt;5.  自定义错误类的支持&lt;br /&gt;•   在自定义类中通过 super(message, { cause }) 传递原因；&lt;br /&gt;•   适用 ES2022+ 环境即可直接使用；&lt;br /&gt;•   对 TypeScript 用户，需在 tsconfig.json 中启用 &quot;target&quot;: &quot;es2022&quot; 与 &quot;lib&quot;: [&quot;es2022&quot;]。&lt;br /&gt;&lt;br /&gt;6.  在测试中的应用&lt;br /&gt;•   测试断言可直接验证 err.cause 类型；&lt;br /&gt;•   提升测试可读性与准确性。&lt;br /&gt;&lt;br /&gt;7.  实用技巧与注意事项&lt;br /&gt;•   浏览器默认不输出层级错误链，须手动打印；&lt;br /&gt;•   不建议过度使用错误链，避免干扰阅读；&lt;br /&gt;•   可递归打印完整错误链（logErrorChain 与 logFullErrorChain 示例）；&lt;br /&gt;•   实践场景：数据库异常→业务异常→服务异常的多层错误追踪。&lt;br /&gt;&lt;br /&gt;8.  环境支持与现代用法总结&lt;br /&gt;•   支持于现代浏览器与运行环境（Chrome 93+、Node.js 16.9+、Deno、Bun 等）；&lt;br /&gt;•   推荐实践：&lt;br /&gt;    •   &lt;i class=&quot;emoji&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;/i&gt; 使用 Error(message, { cause })&lt;br /&gt;    •   &lt;i class=&quot;emoji&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;/i&gt; 支持内建与自定义错误类型&lt;br /&gt;    •   &lt;i class=&quot;emoji&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;/i&gt; 改善日志和调试体验&lt;br /&gt;    •   &lt;i class=&quot;emoji&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;/i&gt; 对 TypeScript 进行正确配置&lt;br /&gt;    •   &lt;i class=&quot;emoji&quot;&gt;&lt;b&gt;⚠️&lt;/b&gt;&lt;/i&gt; 记得手动输出或递归追踪错误链。&lt;/div&gt;
      &lt;label for=&quot;expand-2-1&quot; class=&quot;tg-expandable__toggle&quot;&gt;&lt;span class=&quot;sr-only&quot;&gt;Toggle hidden content&lt;/span&gt;&lt;/label&gt;
    &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;author Matt Smith&lt;/i&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://allthingssmitty.com/2025/11/10/error-chaining-in-javascript-cleaner-debugging-with-error-cause/?utm_source=substack&amp;amp;utm_medium=email&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Use JavaScript&apos;s &apos;cause&apos; property to chain errors, preserve context, and simplify debugging. Cleaner stack traces, better test assertions.&quot;&gt;
  &lt;i class=&quot;link_preview_right_image&quot; style=&quot;background-image:url(&apos;https://cdn4.telesco.pe/file/rsSVYPhVcHXLjUTDyRZzFl-cmwVFLU9cmzqvnl3VUUDVsFfn8T8jIlZL0wV7hqeZFz7RmWyd1I_cPUsRCr78zTyzyvPVgD3suy5rpctNwMCa6ToD4QB8pe1adTh5EAfOzbsO8ThJHOpGGegeRPPb7RpuvVJD6mVggn3eqzIRW4idf8yjCIuRsMiYRd9xH0-yPFEn1dARMTAmtvW-vHSAMuPzhzWV-dkp2LYjB9Yks4-F_78xGdxx_B6EalkoXUrtkC9W2llTcRlQqEn3MKdO_enTzjeQ2NpRQiFZZ8cUs1kZv5GjuKU-EfRPbfcozw3t_ndBS_IawZdAwu8YqqoOKA.jpg&apos;)&quot;&gt;&lt;/i&gt;
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;Allthingssmitty&lt;/div&gt;
  
  &lt;div class=&quot;link_preview_title&quot;&gt;Error chaining in JavaScript: cleaner debugging with Error.cause - Matt Smith&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Use JavaScript&apos;s &apos;cause&apos; property to chain errors, preserve context, and simplify debugging. Cleaner stack traces, better test assertions.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#优质博文 #JavaScript #前端 #新特性 #浏览器好东西</title><link>http://telegram.zhetengsha.eu.org/posts/4045</link><guid isPermaLink="true">http://telegram.zhetengsha.eu.org/posts/4045</guid><pubDate>Wed, 29 Oct 2025 01:03:19 GMT</pubDate><content:encoded>&lt;div class=&quot;tgme_widget_message_forwarded_from accent_color&quot;&gt;Forwarded from &lt;a class=&quot;tgme_widget_message_forwarded_from_name&quot; href=&quot;https://t.me/cosine_front_end/2981&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;cosine - 前端人の日常频道&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href=&quot;/search/result?q=%23%E4%BC%98%E8%B4%A8%E5%8D%9A%E6%96%87&quot; title=&quot;#优质博文&quot;&gt;#优质博文&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23JavaScript&quot; title=&quot;#JavaScript&quot;&gt;#JavaScript&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF&quot; title=&quot;#前端&quot;&gt;#前端&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%96%B0%E7%89%B9%E6%80%A7&quot; title=&quot;#新特性&quot;&gt;#新特性&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%B5%8F%E8%A7%88%E5%99%A8&quot; title=&quot;#浏览器&quot;&gt;#浏览器&lt;/a&gt;&lt;br /&gt;好东西。&lt;br /&gt;&lt;a href=&quot;https://web.dev/blog/baseline-urlpattern&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;URLPattern is now Baseline Newly available&quot;&gt;URLPattern is now Baseline Newly available&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;tg-expandable&quot;&gt;
      &lt;input type=&quot;checkbox&quot; id=&quot;expand-1-0&quot; class=&quot;tg-expandable__checkbox&quot; aria-label=&quot;Toggle hidden content&quot; aria-controls=&quot;expand-1-0-content&quot; /&gt;
      &lt;div id=&quot;expand-1-0-content&quot; class=&quot;tg-expandable__content&quot;&gt;AI 摘要：介绍了已进入 Baseline 的新浏览器功能 &lt;b&gt;URLPattern API&lt;/b&gt;，它为 URL 匹配和路由提供了标准、简洁且高性能的原生解决方案。过去开发者需使用复杂的正则表达式或第三方库来解析和提取 URL 参数，而 URLPattern 使得这些操作更清晰、可维护且无需额外依赖。&lt;/div&gt;
      &lt;label for=&quot;expand-1-0&quot; class=&quot;tg-expandable__toggle&quot;&gt;&lt;span class=&quot;sr-only&quot;&gt;Toggle hidden content&lt;/span&gt;&lt;/label&gt;
    &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;[以下是方便搜索索引的大纲(AI 生成)，请读原文]&lt;br /&gt;&lt;div class=&quot;tg-expandable&quot;&gt;
      &lt;input type=&quot;checkbox&quot; id=&quot;expand-1-1&quot; class=&quot;tg-expandable__checkbox&quot; aria-label=&quot;Toggle hidden content&quot; aria-controls=&quot;expand-1-1-content&quot; /&gt;
      &lt;div id=&quot;expand-1-1-content&quot; class=&quot;tg-expandable__content&quot;&gt;1.  URLPattern 基础与核心概念&lt;br /&gt;•   介绍 URLPattern API 的推出背景：取代传统正则匹配与第三方路由库。&lt;br /&gt;•   提供新 URLPattern 接口，可通过 .test() 与 .exec() 操作直接匹配并提取参数。&lt;br /&gt;&lt;br /&gt;2.  基本 URL 模式匹配&lt;br /&gt;•   对比旧方法（URL + 正则）与新 API 的简化写法。&lt;br /&gt;•   展示匹配 /users/:id 的例子，体现代码可读性和简洁性。&lt;br /&gt;&lt;br /&gt;3.  提取动态参数（Dynamic Parameters）&lt;br /&gt;•   传统方法依赖匿名的正则捕获组，易出错。&lt;br /&gt;•   URLPattern 支持命名参数，可通过结构化对象获取（如 result.pathname.groups）。&lt;br /&gt;•   示例：提取书籍分类 category 与 id。&lt;br /&gt;&lt;br /&gt;4.  复合匹配（Compose Multipart Matches）&lt;br /&gt;•   传统方式需多处判断主机名与路径。&lt;br /&gt;•   URLPattern 原生支持同时匹配多个部分，例如 hostname + pathname。&lt;br /&gt;•   示例：匹配 &lt;i&gt;.cdn.com 下的 /images/&lt;/i&gt; 文件。&lt;br /&gt;&lt;br /&gt;5.  减少项目依赖（Project Dependencies）&lt;br /&gt;•   URLPattern 是内置能力，无需加载第三方库，减少 bundle 体积与维护成本。&lt;br /&gt;•   使用浏览器原生实现，跨引擎一致且性能更优。&lt;br /&gt;&lt;br /&gt;6.  深度用法详解（Detailed Usage）&lt;br /&gt;•   多种典型场景：&lt;br /&gt;    •   &lt;b&gt;路径匹配与参数提取&lt;/b&gt;：示例 /products/:category/:id 展示 .test() 与 .exec() 双用法。&lt;br /&gt;    •   &lt;b&gt;匹配子域名与版本号&lt;/b&gt;：支持在 hostname 层定义变量如 :subdomain.myapp.com，适用于多子域架构。&lt;br /&gt;    •   &lt;b&gt;通配符与正则表达式结合&lt;/b&gt;：通过 * 和嵌入式正则增强匹配灵活度，如 /users/:userId(d+)/assets/*.(jpg|png|gif)。&lt;br /&gt;&lt;br /&gt;7.  实战示例：Service Worker 路由&lt;br /&gt;•   利用 URLPattern 拦截 fetch 事件，根据路径实行不同缓存策略。&lt;br /&gt;•   示例：&lt;br /&gt;    •   /images/* 采用缓存优先；&lt;br /&gt;    •   /api/* 使用网络优先。&lt;br /&gt;•   显示该 API 在渐进式 Web 应用（PWA）中的现实意义。&lt;br /&gt;&lt;br /&gt;8.  结语与扩展阅读&lt;br /&gt;•   URLPattern 提升代码可维护性，简化路由逻辑。&lt;br /&gt;•   推荐进一步查阅 &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/URLPattern&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;MDN Web Docs&quot;&gt;MDN Web Docs&lt;/a&gt; 了解完整参考。&lt;/div&gt;
      &lt;label for=&quot;expand-1-1&quot; class=&quot;tg-expandable__toggle&quot;&gt;&lt;span class=&quot;sr-only&quot;&gt;Toggle hidden content&lt;/span&gt;&lt;/label&gt;
    &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;author Jay Rungta&lt;/i&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://web.dev/blog/baseline-urlpattern&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;URLPattern became Baseline Newly available as of September 15, 2025.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;web.dev&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;URLPattern is now Baseline Newly available  |  Blog  |  web.dev&quot; src=&quot;/static/https://cdn4.telesco.pe/file/sOSXQ2X8PLCYqwa9WYmFavGcYl21dDamMP3ODVVJFNYk3kkJQlLbuaAFndAbUCkTzhUIjpjhJJ907iwACu-XtSGUb_O8ES_st7_qVhg7-RD4LvLDwXieoDCVgPiSw8csMqnfPN8ALphoQoC2IRdu8nYrPJmOr7DPDXSnuvF0Nn1wlHH8KGKhKs71fo_OnwMz68NXNN0NGO3x36V0O7hETl67NDGnP3Q3Ey0tgCQUu4Ia6a80ORhebUCZcZVmsg30__SB9qF1ocGEqH2jBrckGgkfOJhsiohoswZkVJQcz8pLoZeRB0gWNqZlrnHFhNxeZddbF3fpD1jINtno9aBb4A.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;URLPattern is now Baseline Newly available  |  Blog  |  web.dev&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;URLPattern became Baseline Newly available as of September 15, 2025.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#React #组件库 #前端 #tailwind #动画 #开源挺不错的～ForgeUI ｜ 官网</title><link>http://telegram.zhetengsha.eu.org/posts/3892</link><guid isPermaLink="true">http://telegram.zhetengsha.eu.org/posts/3892</guid><pubDate>Sun, 21 Sep 2025 01:04:14 GMT</pubDate><content:encoded>&lt;div class=&quot;tgme_widget_message_forwarded_from accent_color&quot;&gt;Forwarded from &lt;a class=&quot;tgme_widget_message_forwarded_from_name&quot; href=&quot;https://t.me/cosine_front_end/2881&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;cosine - 前端人の日常频道&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;image-list-container image-list-odd&quot;&gt;
      &lt;button type=&quot;button&quot; class=&quot;image-preview-button image-preview-wrap&quot; popovertarget=&quot;modal-3892-0&quot; popovertargetaction=&quot;show&quot; aria-label=&quot;Open image preview: #React #组件库 #前端 #tailwind #动画 #开源挺不错的～ForgeUI ｜ 官网&quot;&gt;
        &lt;img src=&quot;/static/https://cdn5.telesco.pe/file/gIPKC9UQdV2pYX0qMieENpqzFzr8z66Ke5ulS5Gp-pXM76C2GXFWlmU6x25_wMWPSLNf_ae1UjdjZ9Ls7h-AzhLzvObDre14wg09BoYygojoud2knGsE11Huc3_wpGKZmong1K8qluKQW8nXLnul3wMNY-vKJfHm2E-j26rzFbIaH4KEPjxTBQX1w5GBebBKGv1RpTR2-n6G7eJ6f26s3ySI_bZYSSiCmNZayRksHPZumfNKH0VcDwh1jZ053WUaWPZvzxETH6KjZHDE1KAC_guL-gJGf-WNtzpRTvuLDhGBPBSCVFz2wyQ4t9ExqG-rRv-QdlQkWUPqPanlXGVuvA.jpg&quot; alt=&quot;#React #组件库 #前端 #tailwind #动画 #开源挺不错的～ForgeUI ｜ 官网&quot; width=&quot;800&quot; height=&quot;506&quot; loading=&quot;eager&quot; /&gt;
      &lt;/button&gt;
      &lt;div class=&quot;modal&quot; id=&quot;modal-3892-0&quot; popover=&quot;auto&quot; aria-label=&quot;Image preview&quot;&gt;
        &lt;button type=&quot;button&quot; class=&quot;modal__backdrop&quot; popovertarget=&quot;modal-3892-0&quot; popovertargetaction=&quot;hide&quot; aria-label=&quot;Close image preview&quot;&gt;&lt;/button&gt;
        &lt;button type=&quot;button&quot; class=&quot;modal__close&quot; popovertarget=&quot;modal-3892-0&quot; popovertargetaction=&quot;hide&quot; aria-label=&quot;Close image preview&quot;&gt;×&lt;/button&gt;
        &lt;div class=&quot;modal__surface&quot;&gt;
          
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;&lt;a href=&quot;/search/result?q=%23React&quot; title=&quot;#React&quot;&gt;#React&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E7%BB%84%E4%BB%B6%E5%BA%93&quot; title=&quot;#组件库&quot;&gt;#组件库&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF&quot; title=&quot;#前端&quot;&gt;#前端&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23tailwind&quot; title=&quot;#tailwind&quot;&gt;#tailwind&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8A%A8%E7%94%BB&quot; title=&quot;#动画&quot;&gt;#动画&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%BC%80%E6%BA%90&quot; title=&quot;#开源&quot;&gt;#开源&lt;/a&gt;&lt;br /&gt;挺不错的～&lt;br /&gt;&lt;a href=&quot;https://github.com/AmanShakya0018/forgeui&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;ForgeUI&quot;&gt;ForgeUI&lt;/a&gt; ｜ &lt;a href=&quot;https://forgeui.in/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;官网&quot;&gt;官网&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;tg-expandable&quot;&gt;
      &lt;input type=&quot;checkbox&quot; id=&quot;expand-0-0&quot; class=&quot;tg-expandable__checkbox&quot; aria-label=&quot;Toggle hidden content&quot; aria-controls=&quot;expand-0-0-content&quot; /&gt;
      &lt;div id=&quot;expand-0-0-content&quot; class=&quot;tg-expandable__content&quot;&gt;AI 摘要：ForgeUI 是一个基于 React 的实验性组件库，重点在于“动画优先”的设计理念，提供动画表单、动态卡片、闪烁文字等现代化 UI 组件，旨在帮助开发者快速实现富交互界面。其技术栈包括 Next.js、TypeScript、Tailwind CSS、shadcn/ui 和 Framer Motion。项目定位更像是作者的“个人实验室”，供开发者参考与取用，而非正式社区驱动的开源产品。&lt;/div&gt;
      &lt;label for=&quot;expand-0-0&quot; class=&quot;tg-expandable__toggle&quot;&gt;&lt;span class=&quot;sr-only&quot;&gt;Toggle hidden content&lt;/span&gt;&lt;/label&gt;
    &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;author Aman Shakya&lt;/i&gt;</content:encoded></item></channel></rss>