Published on

2025-第三十七周

Authors

该周报主要为各个地方内容的汇总整理

技术

如何控制 package.json | Val Town 博客

本文讨论了在复杂项目中如何有效管理 package.json 和依赖,以避免 node_modules 过度膨胀。作者分享了依赖管理的实用技巧和工具,强调理解依赖、分析大小、选择优质模块和定期清理的重要性。

  • 📖 阅读新依赖的源码和文档,避免引入不必要的代码,仅信任如 React 等大型依赖
  • 🔍 使用 npm ls 或 pnpm why 等命令分析依赖树,了解间接依赖并尝试复用已有模块
  • 📊 使用 Grand Perspective 或 rollup-plugin-visualizer 等工具分析模块在磁盘和打包后的实际大小
  • ✅ 选择维护良好、有 TypeScript 类型、测试通过和文档齐全的模块,避免已废弃或解决错误问题的模块
  • 🧹 使用 Renovate 定期更新依赖,使用 Knip 检测并删除未使用的依赖和文件
  • 👥 关注优质模块作者(如 Sindre Sorhus、Rich Harris 等),建立可靠依赖来源清单
  • 🌐 接受依赖不可避免的事实,但通过精细管理减少技术债务和潜在问题

您最大的客户可能成为您最大的瓶颈

文章概述了在分布式多租户系统中使用简单 FIFO 队列会导致“吵闹邻居”问题,并介绍了作者为解决此问题而构建的公平队列系统 Broccoli。

  • 🚨 问题爆发:新客户一次性导入数百万文档,导致整个 Trieve 平台的文档索引管道堵塞,其他客户请求被阻塞。
  • 👥 吵闹邻居问题:在多租户系统中,一个资源消耗巨大的“贪婪”租户会独占资源,导致其他租户的服务被“饿死”。
  • ⚖️ 传统方案缺陷:限流方案将压力转嫁给客户;专用工作队列方案则导致资源闲置和运维噩梦,操作开销巨大。
  • 🔄 公平队列原理:采用为每个客户分配独立队列并结合轮询调度器的机制,确保系统轮流处理每个客户的请求,避免资源被单一客户垄断。
  • 🥦 Broccoli 的实现:其核心架构简洁,通过插入消息时分配专属队列和调度器注册,读取时轮询调度并自动平衡,实现了高效且易调试的公平队列。
  • 🌟 项目反响:开源后获得热烈反响,拥有超过 1.5 万次下载和 400 多个 GitHub 星标,并已扩展支持 SurrealDB 作为代理。

史诗级 Next.js 15 教程第一部分

本文介绍了使用 Next.js 15 和 Strapi v5 构建全栈视频摘要应用"Summarize AI"的教程第一部分,涵盖项目架构、技术栈和初始设置。

  • 🚀 教程系列共 10 部分,从基础搭建到部署,全面覆盖 Next.js 15 和 Strapi 功能
  • 🎯 构建"Summarize AI"应用,解决视频内容筛选痛点,提供 AI 摘要和管理功能
  • 🏗️ 项目采用前后端分离架构:Next.js 15 前端 + Strapi v5 后端 CMS
  • ⚙️ 前端技术栈包括 TypeScript、Tailwind CSS、shadcn/ui 和 Vercel AI SDK
  • 🔧 后端使用 Strapi v5,支持 JWT 认证和 SQLite 数据库
  • 📁 详细演示了项目初始化、Shadcn UI 安装和 Strapi 配置步骤
  • 🌐 成功实现前后端数据联通,通过 API 获取 Strapi 内容并在前端展示
  • 📝 教程采用公开构建方式,代码开源,鼓励社区参与和反馈

真实世界中的中低端移动设备(2025 版)

本文探讨了为 2025 年网络性能测试选择具有代表性的低端和中端安卓设备的重要性,并推荐了三星 Galaxy A15 5G 和 A54 5G 作为最佳选择。

  • 📱 真实设备测试的价值:对于全职从事网站速度优化的人员,使用真实设备进行测试至关重要,能更准确地复现移动端的交互和性能挑战。
  • 🔄 基准设备的演变:谷歌团队曾将 Moto G4 作为全球基准设备,但其已过时;如今的 Lighthouse 和 DevTools 使用模拟设备,与真实硬件存在差距。
  • 📊 选择设备的标准:评估需综合考虑市场分布、硬件能力、软件支持时长和价格,目标是找到能最大限度减少妥协的代表性设备。
  • 🌍 低端设备推荐:三星 Galaxy A15 5G:2023 年底发布,售价 199 美元,采用联发科 Dimensity 6100+ 芯片,4-8GB 内存,支持 5 年安全更新,因其价格低廉、全球销售且硬件代表主流低端水平而成为首选。
  • 💪 中端设备推荐:三星 Galaxy A54 5G:2023 年初发布,售价 450 美元,采用 Exynos 1380 芯片,6-8GB 内存,同样支持长期更新,是全球最畅销的中端设备之一,能很好地代表中端市场性能。
  • ⚙️ WebPageTest 替代方案:若无法使用真机,可使用 Pixel 3A 模拟 A15(低端),Pixel 5 模拟 A54(中端)进行测试,虽不完美但结果足够接近。
  • 核心结论:为构建快速、可访问的网络,校准基准时应以用户实际拥有的硬件为准。在 2025 年,拥有三星 Galaxy A15 5G(低端)和 A54 5G(中端)是进行真实性能测试的理想起点。

浏览器中的液态玻璃:利用 CSS 与 SVG 实现折射效果 — kube.io

本文探讨了如何利用 CSS 和 SVG 置换贴图在网页中模拟苹果 2025 年 WWDC 推出的液态玻璃效果,通过折射原理和镜面高光实现类似弯曲玻璃的 UI 视觉体验。

  • 🌐 基于斯涅尔折射定律计算光线在玻璃介质中的偏折行为,并简化模型仅考虑单次折射事件
  • 📐 使用四种表面函数(凸圆、凸方圆形、凹面、唇缘)定义玻璃截面形态,不同形状产生独特折射效果
  • 🎨 通过 SVG 置换贴图技术将折射向量场转换为 RGB 图像,利用 feDisplacementMap 实现像素位移
  • ⚡ 当前仅 Chrome 支持 backdrop-filter 调用 SVG 滤镜,演示包含放大镜、搜索框、开关等交互组件
  • ✨ 叠加镜面高光效果模拟玻璃边缘反光,通过 feBlend 实现折射与高光的合成
  • 🔧 提供可调节参数控制折射强度、高光饱和度等视觉效果,支持实时预览
  • ⚠️ 存在性能限制和浏览器兼容性问题,暂不建议用于生产环境

工具

remcohaszing/mdxlint:用于检查和格式化 MDX 内容的命令行工具

MDXLint 是一个用于检查和格式化 MDX 内容的命令行工具,支持插件扩展和自定义配置。

  • 🛠️ 提供 CLI 工具,支持检查和格式化 .mdx 文件
  • ⚙️ 支持通过配置文件(如 .mdxlintrc)自定义规则和插件
  • 🔌 兼容所有 remark 插件和 remark-lint 规则
  • 📝 支持拼写检查、格式一致性和目录更新等功能
  • 🚫 与 Prettier 不兼容,需在 .prettierignore 中排除 .mdx 文件
  • 📦 基于 Node.js 20+ 环境,采用 MIT 开源协议

reshaped

专业打造的 React 与 Figma 组件库,助您构建精美产品或启动专属设计体系

react-horizontal-heatmap

该文章介绍了一个轻量级的 React 水平热力图组件,适用于时间线、活动图表和状态指示器等场景,并详细说明了其安装、使用方法、配置属性和开发信息。

  • 🎯 一个轻量级 React 组件,用于渲染水平方向的热力图
  • 📅 适用于时间线、活动图表、贡献图或状态指示器
  • 🎨 支持完全自定义颜色、方格尺寸和间距
  • 📦 可通过 npm、yarn 或 pnpm 进行安装
  • ⚙️ 核心配置属性包括数据、最大值、颜色数组、方格大小和间距

sidequest

Sidequest 是一个专为 Node.js 应用设计的现代化、可扩展的后台作业处理器,它使用 TypeScript 构建,适用于生产环境,提供可靠的作业处理、多种数据库后端支持、美观的 Web 仪表板以及全面的监控功能。

  • 🚀 高性能 - 使用工作线程进行非阻塞的作业处理
  • 🗄️ 多后端支持 - 开箱即用地支持 PostgreSQL、MySQL、SQLite 和 MongoDB
  • 模块兼容 - 完全兼容 ESM 和 CJS 现代 JavaScript 模块
  • 📝 TypeScript 支持 - 默认支持 TypeScript 作业(需 Node.js >= v23.6.0)
  • 📊 Web 仪表板 - 提供用于监控作业和队列的响应式仪表板
  • 🎯 队列管理 - 支持配置多个队列、工作线程和优先级
  • 🫀 作业生命周期管理 - 支持配置指数退避重试、暂停和失败机制
  • 定时作业 - 支持在特定时间调度作业运行
  • 🔒 作业唯一性 - 通过灵活的约束条件防止重复作业
  • 🛠️ CLI 工具 - 提供用于数据库迁移和管理的命令行界面
  • 🏗️ 单体仓库架构 - 采用模块化包设计,便于灵活部署

metatoolkit

MetaToolkit 是一个功能强大的 Python 库,用于处理图像、视频和音频文件的元数据,支持读取、添加和管理多种媒体格式的元数据信息。

  • 🐍 Python 库:一个强大的 Python 库,用于处理图像、视频和音频文件的元数据。
  • 🖼️ 图像元数据处理:支持 JPEG、PNG 等格式的 EXIF 和 XMP 元数据。
  • 🎬 视频元数据处理:支持 MP4、AVI 等格式的元数据标签。
  • 🎵 音频元数据处理:支持 MP3、WAV 等格式的 ID3 标签。
  • 📝 自定义元数据:支持添加自定义元数据字段。
  • 🔧 命令行工具:提供便捷的命令行界面,可直接在终端操作。
  • 🐍 Python API:提供简单易用的 Python 接口,便于集成到项目中。
  • ⚙️ 安装方式:可通过 pip 安装或从源码安装,要求 Python >= 3.10 并依赖 Pillow 和 pyexiv2。
  • 📁 支持格式:涵盖常见图像(JPEG、PNG)、视频(MP4、AVI、MOV、MKV)和音频(MP3、WAV、FLAC 等)格式。
  • 🔍 相关工具:推荐使用 ExifTool 和 FFprobe 查看和验证元数据。

更新

添加强制执行最小包年龄策略的方法 · Issue #9921 · pnpm/pnpm · GitHub

原文标题: Add a way to enforce a minimum package age policy · Issue #9921 · pnpm/pnpm · GitHub

pnpm 项目收到一个关于实施最小包年龄策略的功能请求,旨在通过限制安装过新发布的包来减少恶意依赖攻击风险。

  • 🛡️ 用户提议在.npmrc 中设置包最小年龄限制(如 package-min-age=3d)
  • ⚠️ 默认启用并可被 CLI 标志覆盖,类似 postinstall 脚本的安全处理方式
  • 📦 当策略阻止安装时显示警告信息并自动解析到较旧版本
  • ⏰ 可防止近期恶意包攻击但可能延迟合法热修复的及时应用
  • 👍 获得 32 个点赞、6 个爱心和 6 个火箭反应,显示社区高度支持

Zero-configuration Express backends

Vercel 现已为 Express 框架提供零配置支持,简化了 Node.js 应用的部署流程。

  • 🚀 Express 应用现可零配置部署,无需手动设置重定向或使用/api 目录
  • 🤖 基础设施自动识别 Express 应用结构,实现深度集成支持
  • 🌐 示例展示基础路由功能:根路径返回'Hello World'文本
  • 📖 官方文档已更新,提供 Express on Vercel 的详细部署指南
  • ⚡ 保持 Express 轻量特性同时获得 Vercel 的无服务器架构优势

使用带有 Suspenseful 数据的 Activity 组件

React 19 的实验版本中提供了一个名为 Activity 的组件,它用于切换组件的可见性,并具有一些额外优势,使其比替代方案更有用。

  • 🎛️ Activity 组件通过其 mode 属性控制子组件的显示或隐藏,其核心优势在于:组件隐藏时会卸载其副作用(effects),但同时保持其状态。
  • ⚡ 隐藏的组件仍会以较低优先级执行 Suspense 数据获取,实现“预加载”,使应用在显示时感觉更快。
  • 💾 能有效维持组件的本地状态(如展开的列表或选中的复选框),即使在其可见性被切换时也不会丢失。
  • 🔊 可卸载副作用,例如隐藏正在播放的音频行时会暂停播放,但保留其“当前播放时间”的状态以供再次显示时使用。
  • 🔍 适用于子组件需自行决定其可见性的场景(如父组件控制过滤器,但过滤所依赖的数据仅子组件知晓),而无需将数据获取和过滤逻辑全部上移至父组件。
  • ⚖️ 与在父组件中过滤或获取全部数据这两种替代方案相比,Activity 避免了组件的频繁挂载/卸载,从而保留了状态和预加载优势,性能更佳。
  • 📋 该组件并非所有条件渲染的必需品,但在需要维持状态、卸载副作用或预加载数据的复杂场景中非常实用。

AI

claude-init

claude-init 是一个专为中国开发者定制的 Claude Code 智能开发环境中文版本,提供完整的中文本地化 AI 编程体验

  • 🚀 完全中文化的开发套件,包括中文 AI 指令、文档系统和错误提示
  • 🌟 支持免翻墙访问,由 AnyRouter 提供免费转发节点服务
  • 🧠 集成智谱 AI 引擎,提供 GLM-4.5 大模型支持
  • 📚 采用三层文档架构,实现智能上下文管理和自动上下文注入
  • 🔧 内置 MCP 服务器功能,支持 Gemini 深度咨询和 Context7 文档查询
  • 🎵 支持自定义通知音效和自动安全扫描保护
  • ⚡ 提供一键安装脚本和丰富的快捷指令

agents.md

本文介绍了一个名为 AGENTS.md 的开源项目,它是一种为 AI 编程助手提供项目上下文和指导的专用文件格式。

  • 📄 文件格式:AGENTS.md 是一个类似 README 的专用文件,用于向 AI 编程助手提供项目背景和操作指南。
  • 🛠️ 开发环境提示:包含使用 pnpm 和 turbo 管理项目、创建新包以及确认包名称的实用命令。
  • 测试说明:详细说明了如何运行测试套件、处理类型错误以及确保代码质量的具体步骤。
  • 🔀 PR 指南:规定了提交拉取请求时的标题格式,并强调在提交前必须运行 lint 和测试。
  • 🌐 项目网站:该项目包含一个基于 Next.js 的网站,用于展示项目目标和示例,支持本地开发运行。

spec-kit

Spec-Driven Development 是一种颠覆传统软件开发的方法论,它将可执行的规范置于开发过程的核心,而非编写大量无差异的代码,旨在帮助组织更快速、高质量地构建软件。

  • 🌱 核心理念: 开发过程由意图驱动,强调先定义“做什么”再考虑“怎么做”,并通过多步骤的细化而非一次性提示生成代码,高度依赖先进 AI 模型的能力。
  • 🛠️ 快速开始: 通过安装 Specify CLI 工具,使用 /specify/plan/tasks 等命令,从描述需求、制定技术计划到分解任务并实现,引导 AI 代理完成开发。
  • 🧩 发展阶段: 支持从零开始的“绿地”开发、探索多种解决方案的“创意探索”以及对现有系统进行迭代增强的“棕地”现代化。
  • 🎯 实验目标: 追求技术栈独立性,能适应企业级约束(如云提供商、合规要求),并支持以用户为中心和创造性、迭代式的开发流程。
  • 📋 详细流程: 包含项目初始化、功能规范澄清、生成技术实现计划、验证计划以及最终由 AI 代理执行实现和调试错误等多个严谨步骤。
  • ⚠️ 前提条件: 需要在 Linux/macOS 或 WSL2 环境下运行,并预先安装 AI 编码代理(如 Claude Code)、uv 包管理器和 Python 3.11+ 等工具。

xiaohongshu-mcp

小红书 MCP 工具是一个基于 Model Context Protocol 的开源项目,用于自动化管理和发布小红书内容,支持多种客户端接入。

  • 🔐 支持登录小红书账号及检查登录状态,需避免多网页端同时登录
  • 📝 可发布图文内容,包含标题、描述和图片,后续将支持更多类型
  • 🔍 提供关键词搜索小红书内容功能
  • 📋 可获取首页推荐内容列表
  • 📊 支持获取帖子完整详情,包括互动数据和评论,需提供帖子 ID 和 xsec_token
  • 💬 支持自动发表评论到指定帖子
  • 📱 兼容多种 MCP 客户端(Claude Code、Cursor、VSCode、Gemini 等)

claude-flow

Claude-Flow v2.0.0 Alpha 是一个革命性的企业级 AI 编排平台,通过蜂群智能、神经网络识别和 87 种高级 MCP 工具重新定义 AI 开发方式,提供前所未有的 AI 驱动开发工作流。

  • 🐝 蜂群智能协调:采用女王主导的 AI 协调机制,配备 specialized worker agents 进行高效任务分配
  • 🧠 神经网络加速:集成 27+ 认知模型,支持 WASM SIMD 加速,实现实时模式识别与自适应学习
  • 🛠️ 丰富工具生态:提供 87 种 MCP 工具,涵盖集群编排、内存管理、自动化工作流等多个领域
  • 🔄 动态代理架构:具备自我组织能力和容错机制的 DAA 系统,支持智能代理生命周期管理
  • 💾 持久化存储:基于 SQLite 的内存系统,配备 12 个专用表的.swarm/memory.db 数据库
  • 云端集成:全新 Flow Nexus 云平台,提供 E2B 沙盒、AI 集群部署和分布式机器学习训练
  • 🎯 智能工作流:先进钩子系统支持自动化操作,涵盖任务前/后处理、会话管理等场景
  • 📊 GitHub 集成:6 种专用模式支持代码库管理、PR 审查、问题跟踪等完整开发流程
  • 🚀 性能卓越:实现 84.8% 的 SWE-Bench 解决率,2.8-4.4 倍速度提升,32.3% 的 token 节省
  • 🖥️ 跨平台支持:提供 Windows 特殊安装指南,支持 SQLite 内存回退机制确保兼容性

其他

企业工作的消亡

本文探讨了现代企业中存在的大量“无意义工作”现象,指出许多白领职位实质上是形式大于内容的表演,员工们心照不宣地维持着这种集体幻觉,并正在探索利用企业资源为个人真正有价值的事业服务的生存策略。

  • 💼 企业中存在大量“无意义职位”:员工用复杂术语描述工作内容,实则无法说清实际价值,如同“专业邮件转发员”或“人类中间件”
  • 🎭 集体维持工作幻觉:尽管私底下都承认工作的无实质性,但为维持生计仍共同表演“皇帝的新装”
  • 🏢 疫情暴露工作实质:远程办公时期凸显出哪些工作真正重要,哪些角色离开办公室就失去存在意义
  • 🔄 新一代职场人策略转变:年轻人不再相信企业角色的意义,而是利用企业稳定资源(薪资、设备)作为个人真正事业的跳板
  • 👔 职场身份成为日常表演:通勤过程如同变装仪式,上班族在职业身份与真实自我间每日切换
  • 💡 认知转变带来自由:认识到企业工作无需承载人生意义,只需将其视为资源工具,即可减轻认知失调
  • 🚀 新兴平行价值体系:越来越多人在保持企业职务的同时,暗中构建真实有价值的个人项目体系
  • 🔮 企业信仰体系正在崩塌:如同宗教世俗化过程,企业架构仍在但内在信仰已逐渐消亡