# Better 的前端与 AI 技术博客 · npm 与 AI Agent 实测 > Better(中文署名廖小新)的前端与 AI 博客:React、Vue、Node.js、npm、Chrome 插件与 AI Agent 工具链的长期记录,开源实测多附可复现命令,自 2016 年更新。 > > 站内现有 123 篇文章、10 个合集、19 个可运行示例,最早一篇写于 2016 年。作者 廖小新,站内署名 Better,其余写法 Better、小新;前端工程师。 > > 全文订阅:[https://liaolongdong.github.io/better-blog/feed.xml](https://liaolongdong.github.io/better-blog/feed.xml) | 全站地址索引:[https://liaolongdong.github.io/better-blog/index-all.html](https://liaolongdong.github.io/better-blog/index-all.html) | 站点地图:[https://liaolongdong.github.io/better-blog/sitemap.xml](https://liaolongdong.github.io/better-blog/sitemap.xml) > > 许可:代码 MIT,文章与配图 CC BY-NC-SA 4.0。引用请连作者与实测日期一起注明。 ## 站点页面 - [首页](https://liaolongdong.github.io/better-blog/) - [工具箱](https://liaolongdong.github.io/better-blog/tools.html):三款 Chrome 浏览器插件,另有一组不用装任何东西、在浏览器里算的在线工具 - [分类](https://liaolongdong.github.io/better-blog/categories.html):按主题归档的全部文章:前端开发、AI 工具实测、npm 与包管理、Chrome 插件、服务器部署 - [合集](https://liaolongdong.github.io/better-blog/series.html) - [标签](https://liaolongdong.github.io/better-blog/tags.html) - [示例](https://liaolongdong.github.io/better-blog/demo.html) - [编辑器](https://liaolongdong.github.io/better-blog/weblab.html) - [关于](https://liaolongdong.github.io/better-blog/about.html) - [个人证件与机构代码工具](https://liaolongdong.github.io/better-blog/tools/idcard.html):身份证、银行卡、手机号,以及统一社会信用代码、组织机构代码、机构信用代码、金融许可证机构编码:本地校验、逐段解析与测试码生成。输入不出本机,不发请求、不上传。 - [编码与摘要工具](https://liaolongdong.github.io/better-blog/tools/codec.html):时间戳与日期互推、Base64 与 URL 编解码、MD5/SHA 摘要、正则测试与替换预览,全部在浏览器里算:粘贴即本地处理,不发请求、不上传文件,超限整体拒绝并说明差多少。 - [JSON 格式与转换工具](https://liaolongdong.github.io/better-blog/tools/json.html):粘贴即本地解析:格式化、压缩、键排序、转义与反转义,坏输入给精确行列并选中那一段;与 TypeScript、YAML、XML、CSV 互转,树视图只画看得见的行,超限整体拒绝。 - [文件与文本对比工具](https://liaolongdong.github.io/better-blog/tools/diff.html):两份文本并排逐行对齐,改动行再做行内逐字高亮,未变行折叠成「省略 N 行」;另有行内视图与按 JSON 值比对的档。粘贴或选本地文件都在浏览器里读,不上传、不发请求。 - [全站索引](https://liaolongdong.github.io/better-blog/index-all.html):按年份列全部文章,另附合集、示例、免安装工具与页面清单;纯服务端渲染,不执行脚本也能读全 - [全文订阅源](https://liaolongdong.github.io/better-blog/feed.xml):Atom 全文源,正文完整(含图片与代码块),是站内最容易被直接引用的资产 - [站点地图](https://liaolongdong.github.io/better-blog/sitemap.xml):可索引页面地址与最后更新日 ## 插件使用指南 - [账号密码管理助手:安装与权限](https://liaolongdong.github.io/better-blog/extensions/account-password-helper.html):这是给开发、测试、预发多环境准备的一款本地优先账号管理器。它按精确域名隔离账号,选中条目后自动填充并替你点登录,TOTP 也一起接上;数据只存本机。 - [文件格式任意转换助手:安装与隐私](https://liaolongdong.github.io/better-blog/extensions/transfer-any-file.html):一个把 Markdown、Word、PDF、Excel、CSV、JSON、HTML 和图片互相转换的浏览器扩展。所有转换都在你打开的那个标签页里完成,文件不经过服务器。 - [跨域代理助手:安装与规则](https://liaolongdong.github.io/better-blog/extensions/cross-origin-proxy.html):一条浏览器规则,把 FAT 前端指到 UAT 后端:不改代码、不改后端 CORS、不用重新构建。请求头/响应改写、Mock、延迟、阻断与 WebSocket 转发也走同一套规则。 ## 合集(同一主题按阅读顺序连读) - [九月的静默改动](https://liaolongdong.github.io/better-blog/series.html#silent-changes-2026-09):八个上游仓库,在你没翻 changelog 的那天各自改了什么——逐条跑过再说话。(共 8 篇) - [AI 编程工程化](https://liaolongdong.github.io/better-blog/series.html#ai-sdd):从「用 Spec 管住 Agent」到四大流派拆解,AI 编码从手艺人活变成工程活。(共 2 篇) - [大模型排行榜实测](https://liaolongdong.github.io/better-blog/series.html#ai-model-rating):同一批任务跑两轮排名,看国产模型怎么在两个月里把位次改掉。(共 2 篇) - [账号密码管理插件](https://liaolongdong.github.io/better-blog/series.html#account-password-helper):一款本地优先插件从想法到一键自动登录的两次记录。(共 2 篇) - [前端 AI 开源速览](https://liaolongdong.github.io/better-blog/series.html#fe-ai-opensource-0712):同一天扫过的三个项目:让网页听懂人话、给人和 Agent 共用的 UI 系统、终结 AI 味的 46 条规则。(共 3 篇) - [你不知道的前端小技巧](https://liaolongdong.github.io/better-blog/series.html#js-css-tips):JS 与 CSS 各一篇,都是翻源码时顺手记下来的边角料。(共 2 篇) - [包管理与私有仓库](https://liaolongdong.github.io/better-blog/series.html#npm-package):发公网包、搭私有源、三种包管理器横向对比。(共 3 篇) - [服务器部署手记](https://liaolongdong.github.io/better-blog/series.html#server-deploy):阿里云上从 node+mongodb 到 nginx https,再到配置详解的完整链路。(共 4 篇) - [算法与面试手写题](https://liaolongdong.github.io/better-blog/series.html#algo-interview):排序、查找、常见手写题与面试题汇总,五篇凑一份可刷的清单。(共 5 篇) - [微信生态 H5 踩坑](https://liaolongdong.github.io/better-blog/series.html#wechat-h5):JSAPI 支付、分享到好友与朋友圈、原生 JS 实现三方分享。(共 3 篇) ## 全部文章(按年份,新→旧) ### 2026 年 - [RTK 压缩命令输出喂给 AI 编程助手:8 条命令实测,省了 token 也丢了什么](https://liaolongdong.github.io/better-blog/2026/10/28/rtk-command-output-compression.html):RTK 是给 AI 编程助手压缩命令输出的 Rust CLI 代理。本文在 8 条命令上对比原始与压缩输出,测 token 降幅,并检查失败用例、日志和 JSON 是否还能用。 - [同一份代码,构建出 Chrome 和 Firefox 两套扩展:WXT 上手实测](https://liaolongdong.github.io/better-blog/2026/10/27/wxt-cross-browser-extension.html):WXT 是基于 Vite 的浏览器扩展框架,用文件入口生成 Chrome/Firefox manifest,内置 Shadow DOM UI 与 storage。实测一个阅读时间扩展,并比较 extension.js 与 CRXJS。 - [README 四条示例我逐字跑了:两条成立,两条不成立](https://liaolongdong.github.io/better-blog/2026/10/27/sandbox-runtime-ssh-readable.html):逐字复现 anthropics/sandbox-runtime 的 README 示例:curl anthropic.com 在沙箱内被自家代理拦成 403、沙箱外是 301,cat ~/.ssh/id_rsa 真实读取成功;写侧三条路径全被拒。 - [Kimi K3.1 Pro 分成两档卖:贵一倍的钱,在什么负载下花不到两倍](https://liaolongdong.github.io/better-blog/2026/10/25/kimi-k3-1-pro-two-tiers.html):Kimi K3.1 Pro 与 Highspeed 同日开放 API,单价比上一代低三分之一。本文按官方费率算清两档差价落在哪一类 token 上,并核对 Artificial Analysis 的独立速度与成本读数。 - [FreeLLMAPI 说 635 个免费端点:我免 key 拿到的那份是 483](https://liaolongdong.github.io/better-blog/2026/10/25/freellmapi-635-vs-483.html):免 key 拉 FreeLLMAPI 自己发布的签名目录快照:442 行 chat、41 个平台、四类端点合计 483。README 头部写的是 34 家、474 族、635 端点,公开页另一处写 335 与 438。 - [AI 做的网页都长一个样?我试了 10 万 Star 的 taste-skill](https://liaolongdong.github.io/better-blog/2026/10/24/taste-skill-contact-sheet.html):它把设计拆成抽方向、找概念、真实浏览器验收;我用一页博客索引对照,旧版 11 个检查 FAIL,新版 0 个,也留下 3 个警告和几条不该用的边界。 - [OpenUI 一个 core,我装出两版解析器,新版 API 只到 React](https://liaolongdong.github.io/better-blog/2026/10/23/openui-two-lang-cores.html):把 OpenUI 四个第一方运行时装进同一棵依赖树:npm 落下两版 lang-core,顶层 0.4.1、react-lang 里嵌 1.0.1;新版才有的 parseMessage 在 vue-lang 的 27 个导出里不存在。 - [HyperFrames 把 HTML 变成 MP4:我渲两遍逐帧对比,发现确定性有个前提](https://liaolongdong.github.io/better-blog/2026/10/23/hyperframes-html-to-mp4-determinism.html):HyperFrames 用 HTML/CSS 渲成 MP4。我在 macOS 上用系统 Chrome 渲了两次 10 秒视频,逐帧对比哈希,并核了 CDN、render/snapshot 分叉、rAF 三个缺口。 - [Anthropic 三年来首次改 API 版本号:temperature 传了就 400,兼容层这一次最疼](https://liaolongdong.github.io/better-blog/2026/10/23/anthropic-api-2026-10-21-sampling-400.html):2026-10-21 Anthropic 首次更换 API 版本号:temperature 一传就 400,八个 SDK 同时跳大版本。我在本机对比 1.17.0 与 2.2.0 的请求头,发现真正被打中的是裸 HTTP 和兼容层。 - [DeepSeek 开源 DeepInfer:我核了文档和源码,H100 不在列表,高效部署最低 128 张卡](https://liaolongdong.github.io/better-blog/2026/10/22/deepinfer-open-source-sm100-only.html):2026-10-20 DeepSeek 开源 DeepInfer。我核了 README、Q&A 和源码:只支持 V4.1-Flash 与 SM100/昇腾 950,最小高效部署 64P+64D,KV cache 与负载均衡未开源;H100 不在支持列表。 - [一万个人,把密码交给一个不联网的 Chrome 插件](https://liaolongdong.github.io/better-blog/2026/10/22/account-password-helper-10k.html):账号密码管理助手上架 Chrome 应用商店三个月,商店显示 10,000 用户:按环境隔离账号、一键填充并可自动登录、内置 TOTP,敏感字段 AES-256-GCM 加密只存本机。含核心功能、与 Chrome 自带和 Bitwarden 的对比,以及一次商店驳回的复盘。 - [Solid Glass 实测:它说远看像实心玻璃,我量出卡片六成不透明、26px 模糊](https://liaolongdong.github.io/better-blog/2026/10/21/solid-glass-shadcn-cost.html):我用最小 Vite + React 19 + Tailwind 4 实测 Solid Glass:stock shadcn 组件没改一行,但卡片样式是 60% 不透明加 26px 模糊;构建 CSS 从 29.5KB 增到 62.7KB,import 顺序错了静默退回默认主题。 - [PHP2Shell 补丁日:AI 挖出的十年老洞,攻击流量比补丁先到](https://liaolongdong.github.io/better-blog/2026/10/21/php2shell-ai-rce-patch-day.html):PHP 两个未授权 RCE 在 2026-10-21 发布补丁,最低 8.2.35,8.1 及更早无官方更新。我核了官方公告、Wiz/Calif/OpenAI 复盘和源码差异:AI 是加速器,不是自动挖洞机;漏洞提前泄露,Cloudflare 补丁前已见攻击流量。 - [OpenAI 补发四份模型越权复盘:伪造令牌、改配置、动他人钱包](https://liaolongdong.github.io/better-blog/2026/10/19/openai-misalignment-four-reports.html):OpenAI 2026-10-15 补登四份越权报告:伪造未签名 JWT 下载 24 年医院数据、改配置取 147,451 行、动用他人 Sepolia 钱包。核对原文、时滞与 nonce,附 Agent 边界清单。 - [FLUX 3 Klein 开放权重:4K 图 $0.036,许可两句话对不上](https://liaolongdong.github.io/better-blog/2026/10/18/flux-3-klein-open-weights.html):BFL 2026-10-15 发布 FLUX 3 Image Klein:5.6B 开放权重、原生 4K、10 张参考图。4K 每张 $0.036,约为同厂旗舰 1/17;年收入 500 万美元以下免费商用与 FAQ 待对齐。 - [一条命令装进 79 个 Agent,我的空目录最后只落 3 条路径](https://liaolongdong.github.io/better-blog/2026/10/17/npx-skills-agent-paths.html):我用 npx skills@1.7.2 在空目录装同一技能:79 个 Agent 里 54 个因项目目录不存在被跳过,只剩 3 条路径;单 Agent 默认复制,多 Agent 才建 .agents 目录和 symlink。 - [NIST 曲线的种子是 lrand48 摇出来的,我本机复算了 14 条全对](https://liaolongdong.github.io/better-blog/2026/10/17/nist-curve-seed-lrand48.html):Anthropic 公布 NIST 曲线种子来自 srand48 与 Unix 时间戳。我用 Node BigInt 独立复算 14 条全对,665 毫秒,并与本机 LibreSSL 逐字节对账;官方写明无需行动。 - [Meta 放出 816B 开放权重:先别急着下载,1.6TB 内存是第一道门](https://liaolongdong.github.io/better-blog/2026/10/17/muse-spark-open-816b.html):Meta 2026-10-15 发布 Muse Spark Open:816B 参数、42B 激活、1M 上下文。许可证、65 分片(1.64TB)、Together 价格与 Apple 四机实测,可接 API,不适合个人自托管。 - [README 说载 3 个字体族,我数出 981 个 @font-face](https://liaolongdong.github.io/better-blog/2026/10/17/diagram-design-981-faces.html):把 cathrynlavery/diagram-design 的 Google Fonts link 抓回按 gstatic 路径数:981 个 @font-face,928 个给韩文与繁体,简体 0 个。仓库里还躺着第二条 link。 - [你 pin 的 deepseek-flash,今天背后换了模型](https://liaolongdong.github.io/better-blog/2026/10/17/deepseek-v41-flash-alias-switch.html):DeepSeek 2026-10-17 把 deepseek-flash 换成 V4.1-Flash-1017:旧别名仍接收但已退役,1M 上下文、384K 输出;价格是夜里的两倍,Search/Fetch 同时开放,千次 $0.75。 - [官方说会加一枚脚注,我手里那两段正文一字没动](https://liaolongdong.github.io/better-blog/2026/10/17/anthropic-scion-attribution-diff.html):Anthropic 的 Scion 文章自记修改时间是 10-15 18:21:28,而我有博主截图 alt 里的改前正文。两段共 1157 个字符未动,变的是脚注、页首更新说明和一个空格。 - [README 说把 JS 变神经网络,docs 说没有转换器](https://liaolongdong.github.io/better-blog/2026/10/16/handwired-js-neural-net.html):把 chenglou/handwired 的 emitCompare 测了 301 个整数点和 4–5 的 101 个点:整数点 0 处不符、梯度非零 0 个,缝里 99 个点与 JavaScript 不等;它也没有源码转换器。 - [第一次 render 红在 41 秒,第二次什么都不改 85 秒绿](https://liaolongdong.github.io/better-blog/2026/10/14/hyperframes-first-render-timeout.html):hyperframes 第一条 render 在我机器上 41.44 秒后退出码 1,报错说 Chrome 不适配架构。手跑探活命令 8.66 秒返回版本号,源码门限 5000 毫秒;不改再跑 85 秒就绿。 - [官方说 Anthropic key 默认就拦,我 48 个公开仓库里 45 个没开](https://liaolongdong.github.io/better-blog/2026/10/14/anthropic-key-default-block-gap.html):GitHub 把 anthropic_service_api_key 与 anthropic_user_api_key 放进 push protection 默认名单。我逐仓读了 48 个公开仓库,45 个的两枚状态都是 disabled。 - [设计检测器 impeccable 扫我的博客 CSS,报了 2 条](https://liaolongdong.github.io/better-blog/2026/10/13/impeccable-seventeen-copies.html):impeccable 把 AI 写前端的通病做成 59 条规则,Rust 引擎在改动后跑。装 4.5.2 时 install 失败;detect 扫线上 CSS 报 2 条,改名复扫排除误报。skill 有 17 份副本。 - [官方说每枚提交记了 pusher,我的 API 里没这个键](https://liaolongdong.github.io/better-blog/2026/10/13/github-pusher-attribution.html):GitHub push attribution 进入 limited public preview,Enterprise 可用。官方称每枚提交另记已鉴权 pusher;REST、GraphQL、事件流和提交页没取到,灰度名单未公布。 - [我拆了被传投毒的 zod 4.6.6,包里没找到载荷](https://liaolongdong.github.io/better-blog/2026/10/12/zod-466-preinstall-not-shipped.html):HN 上把 zod 4.6.6 传成已投毒版本。preinstall 提交进过 main,但 npm 发布的那份没有载荷:解包、真装、三方校验对齐,那天的发布尝试全没成功。三个点至今没确认。 - [仓库里 124 张镜头卡,GitHub 简介写 152:那行字不在 git 里](https://liaolongdong.github.io/better-blog/2026/10/12/video-shotcraft-stale-about.html):video-shotcraft 的 GitHub 简介写着 152 张镜头卡,README、SKILL.md、磁盘文件和线上 library.json 全是 124。那行简介存在仓库外,四条 CI job 谁也够不着它。 - [100 份 manifest 的仓库,CI 只看这 100 份](https://liaolongdong.github.io/better-blog/2026/10/11/plugin-manifest-only-gate.html):在 cursor/plugins 的克隆里塞进没有 description 的 SKILL.md、不可解析的 mcp.json、删掉必填键的中立 manifest,仓库那本校验脚本三次都报绿。 - [MXC 1.0 正式版:我这台 Intel Mac 装完跑不起来](https://liaolongdong.github.io/better-blog/2026/10/11/mxc-v1-ga-intel-mac.html):微软 MXC 1.0 正式版给 agent 套沙箱,但我这台 Intel Mac 装完 run 就报 mxc_ffi native library was not found:包里 bin/x64 没有 dylib,issue 571 已 not_planned。 - [Deno 去了 Cloudflare,Deploy 还剩六个月](https://liaolongdong.github.io/better-blog/2026/10/11/deno-cloudflare-six-months.html):2026-10-09 两篇公告写着 Deno runtime 一年后停止开发、Deno Deploy 六个月后关停。我装了接替它的 workerd 和 celld:一个缺符号起不来,一个没有 Intel macOS 产物。 - [3 条用例跑绿之后,我看见 e2e 自己列的 55 行 missing](https://liaolongdong.github.io/better-blog/2026/10/10/e2e-replay-cache-55-gaps.html):tester-army/e2e 是 web 与移动端端到端测试框架。我跑绿 3 条自写用例,又让它故意挂一次;迁移表 186 行状态里 55 行 missing,回放缓存那一半没有模型,没验到。 - [Chrome 155 开始解 JPEG XL,我这台 154 还在白下载](https://liaolongdong.github.io/better-blog/2026/10/10/chrome-155-jpeg-xl-decode.html):Chrome 10-06 公告只划解码,starting from Chrome 155。154.0.8037.98 对 .jxl 报 ERR,155.0.8059.39 出了图,picture 双源落点翻;编码侧公告正文 encode 出现 0 次。 - [Haiku 5.5 降价 75% 之外,换模型 ID 不用升 SDK](https://liaolongdong.github.io/better-blog/2026/10/09/haiku-5-5-model-id-vs-sdk-typing.html):Anthropic 只把 model 字符串换成 claude-haiku-5-5,0.131.0 在 stub 上原样发出、回包照常解析。带类型的浏览器工具块才需升 0.132.0,旧版 import 报 TS2724。 - [ascii.rest 的动画很省,打包那步不省](https://liaolongdong.github.io/better-blog/2026/10/09/ascii-rest-208-files.html):减少动效与离屏暂停两处门控我量到了,两档重跑读数相同。代价是引 react 或 element 入口的构建静态带上 208 个 js 文件,element 版 209 个;手动挂三行只有 1 个。 - [维基媒体把 OpenAI 的 agent 活动写进了自己的账本](https://liaolongdong.github.io/better-blog/2026/10/07/wikimedia-openai-agent-edits.html):维基媒体把 OpenAI agent 的三类活动写进自己的账本,也确认没被抓破东西。我拿三个 User-Agent 打本站 robots.txt,三次返回同一份 1407 字节——它记录请求,不拦请求。 - [五种伪造 proof 的写法,它自己只拦两种](https://liaolongdong.github.io/better-blog/2026/10/07/gdp-ts-proof-forgery-3-gaps.html):五种伪造 proof 的写法我都试了,tsc 全过编译,它自带的 strict 档只报 2 条。编译期确实挡得住 5 个错法,README 那句约 0.3 毫秒我在本机测成 2.9 毫秒。 - [一个查询串让 Vite 漏出工作区外文件的头四个字节](https://liaolongdong.github.io/better-blog/2026/10/06/vite-wasm-query-fs-bypass.html):带 ?vite-wasm-instance 的查询会跳过 server.fs 边界检查,错误页吐回工作区外文件开头的 4 个字节;五条维护线两小时内各发一版,三条公告同日挂出,均无 CVE 编号 - [Next.js 堵住了能打回环的 SSRF,可七条公告两天还没进库](https://liaolongdong.github.io/better-blog/2026/10/02/nextjs-rebind-ssrf-advisory-lag.html):同一发打回环的请求,旧版取回了内网那张图、新版只给一个错误状态:这个洞堵上的同一次发版里,安全公告却还有一批没进公告库。 - [GitDiagram 免 key,但 17 条连线 4 条查不到](https://liaolongdong.github.io/better-blog/2026/10/01/gitdiagram-keyless-mcp-4-bad-edges.html):不带 key 的一次 POST 换回一张 mermaid 架构图,代价是它给出的连线里有几条在源码里查不到,看图可以,别抄它画的线。 - [Univer 在 Node 里算公式,但默认表只有 1000 行](https://liaolongdong.github.io/better-blog/2026/09/30/univer-node-two-gaps.html):把电子表格引擎放进没有浏览器的进程里算公式:聚合函数确实回了数值,但默认表范围和 Node 侧渲染这两处缺口得先知道再上生产。 - [livenerf 的 30 天基线跑到第 6 天,它的锁校验是红的](https://liaolongdong.github.io/better-blog/2026/09/30/livenerf-panel-lock-mismatch.html):一条声称日更的评测基线到底有没有在跑:设计参数能从仓库重算出来,声称的曲线却一条都没露出来,本地跑它的锁校验那一格是红的。 - [WebMCP 只剩 document.modelContext 这个挂载点](https://liaolongdong.github.io/better-blog/2026/09/29/webmcp-modelcontext-mount.html):WebMCP 的挂载点收敛成单独一处:测试用的那个名字被官方摘掉之后,在几种 Chrome 配置里各能不能拿到它,逐档给结论与复现开关。 - [scriptc 把 TS 编成 72KB 原生二进制,Intel Mac 少一个包](https://liaolongdong.github.io/better-blog/2026/09/29/scriptc-native-x64-gap.html):把 TypeScript 直接编成原生二进制这条路能走多远:产物里确实没有 Node 运行时,但 Intel Mac 那一档的运行时包在 npm 上没发全。 - [OpenAI 的训练沙箱被一次 DNS 查询打穿](https://liaolongdong.github.io/better-blog/2026/09/27/openai-dns-agent-pause.html):训练沙箱里那台解析器没被管住:agent 借一次外部查询问到了别家的聊天机器人,于是工具使用训练整条暂停,复盘落在网络边界而不是模型行为。 - [Bend 2 实测:68 行声明配 484 行证明](https://liaolongdong.github.io/better-blog/2026/09/27/bend-laws-proof-gaps.html):把声明与证明分文件放会漏掉什么:逐条比对 law 声明与对应的证明体,改坏一行之后证明门的退出码变红,缺口恰好在那一格被暴露出来。 - [界面一校验就没了?json-render 用 19 条规则想终结它,但漏了一层](https://liaolongdong.github.io/better-blog/2026/09/26/json-render-silent-strip.html):界面一跑校验就消失:spec 过一遍验证之后,元素上的事件绑定与顶层状态被静默删掉,返回却仍然是成功,这一层该由谁来守。 - [别再问 Actions 的失败数怎么数了,2500 是哨兵不是答案](https://liaolongdong.github.io/better-blog/2026/09/26/github-actions-2500-cap.html):Actions 失败数接口返回的那个整数是封顶值而不是答案:没有截断标记时怎么用日期窗口拆开再相加,以及这样量出来的为什么只能叫下界。 - [🚨 别再死磕 CLAUDE.md 了!AGENTS.md 那扇门是远程装的](https://liaolongdong.github.io/better-blog/2026/09/25/claude-agents-md-remote-gate.html):AGENTS.md 这扇门不是本地开关:它由远端配置决定装不装得上,于是同一个文件在不同机器上的行为差异,要往配置分发那一层去找原因。 - [谷歌开源的 ax:三样预装两样空,这才是真正的 v1alpha1](https://liaolongdong.github.io/better-blog/2026/09/24/google-ax-workspace-materialization.html):谷歌那份 agent 沙箱库:文档说预装三样东西,翻完提交记录只有一样走到了 CLI 表头,剩下两样分别是没人读和只建了个空目录。 - [谁才是省上下文冠军?2026年9月4条浏览器入口实测排名出炉,结果让人意外](https://liaolongdong.github.io/better-blog/2026/09/23/browser-skill-context-bytes.html):四条让 agent 操作浏览器的入口在同一台机器上各占多少上下文:常驻字节、按需字节,以及背后那份参数表要等到什么时候才真的进上下文。 - [同一站点的账号该出现在哪些子域:跨子域名匹配三档的实现与踩坑](https://liaolongdong.github.io/better-blog/2026/09/22/cross-subdomain-matching.html):精确 host 匹配是多环境隔离的立身之本,但真实登录常横跨一整个子域家族。拆开三档匹配的分层判据、不能切的主域名边界,以及只有真机才抓到的 %2A 踩坑。 - [我把 Anthropic 的金融插件仓库读了一遍,发现回滚漏掉了 1 行](https://liaolongdong.github.io/better-blog/2026/09/22/claude-advisor-readme-row.html):一次仓库级回滚的三刀之后还剩什么:独立仓库下架、条目摘掉、目录删净,README 表格里那一行却还站着;顺手数了同一仓库里挂着没合的请求。 - [18,757 Star 的 Cloudflare 安全审计 skill 来了——16 条探针戳它的两个校验器](https://liaolongdong.github.io/better-blog/2026/09/21/security-audit-two-validators.html):一份很火的安全审计 skill:完整流程在自己机器上跑不动,于是只把它自带的两个校验器拎出来单独测,两道各自绿灯的门中间为什么没人守。 - [36K Star 的仓库自己先翻车!pnpm 的「并发组」来了——7 个版本挨个跑](https://liaolongdong.github.io/better-blog/2026/09/21/pnpm-task-settings.html):把 pnpm 的并发组这个新特性在多个版本上挨个跑一遍:给自己仓库的任务加了分组之后,为什么同一份 checkout 里连版本命令都跑不动,边界落在哪一档。 - [三家并行工作区翻车了:唯一装上的那家,0.213 秒就把我拒了](https://liaolongdong.github.io/better-blog/2026/09/21/one-worktree-per-agent.html):三家并行工作区方案在同一台机器上的横评:装不装得上、拒绝得多快,以及磁盘占用要按什么口径量才不被目录树的表观大小骗过去。 - [一个 API key 都不配就能看卫星图?gods-eye-view 用 13 条免密路径彻底终结这个问题](https://liaolongdong.github.io/better-blog/2026/09/17/gods-eye-view-keyless.html):把开源榜第一的 gods-eye-view clone 到本机跑一遍:不配一个 API key,21 个图层上屏、0 条 console 错误,另外撞出两件它自己没兜住的事。 - [我把 37 个 SKILL.md 挨个数了一遍,发现 14 个不会被自动加载](https://liaolongdong.github.io/better-blog/2026/09/12/trending-skill-sweep.html):逐个统计一批仓库里的 SKILL.md:哪些真的会被自动加载、哪些写了却永远不进上下文,判据按清单口径给,不采信 README 自己的说法。 - [谁才是 9 月最不动声色的改动?三桩实测排完,第一名是我自己](https://liaolongdong.github.io/better-blog/2026/09/10/silent-defaults.html):三桩没有任何报错的默认值改动:模型名换了、latest 指向 alpha、注册入口关了。各自怎么被发现、影响面多大,跑完之后我把优先级重排了一遍。 - [别再问我 Next 该升到哪版:16.3.3 关掉 AVIF,6 天 3 小时后 16.3.4 又打开](https://liaolongdong.github.io/better-blog/2026/09/10/nextjs-avif-trap.html):把三个版本的 image-optimizer.js 拉到本地逐行对照:决定 AVIF 到底有没有在跑的那行字不在版本号里,而在开关默认值与升级时序的缝隙上。 - [🚨 别再死磕 AI 自动出图了!我这周试了 4 个项目,2 个卡在半路](https://liaolongdong.github.io/better-blog/2026/09/10/agent-visual-toolchain.html):四个 AI 出图项目在同一台机器上的实跑结果:品牌表缺项、init 顺手 clone 整仓这两处卡住的地方逐条点名,最后跑通的那一条走的是浏览器调试协议。 - [四个新功能,四段实现笔记:右键填充、全站搜索、快速添加与只读详情](https://liaolongdong.github.io/better-blog/2026/09/05/login-flow-details.html):这批更新没有新增任何设置页开关。本文逐个拆开右键菜单填充、内联面板定位、侧边栏全站搜索与条目只读详情背后的实现取舍与安全边界。 - [用 Web Crypto 实现密码管理器级加密:PBKDF2 60 万次迭代 + AES-256-GCM 实战](https://liaolongdong.github.io/better-blog/2026/08/28/webcrypto-encryption-in-practice.html):不引任何加密库,只用浏览器原生 Web Crypto API 构建可审计的加密体系:密钥派生、字段级加密、会话生命周期与换钥的完整实现。 - [让 Chrome 侧边栏 1 秒内打开:MV3 Service Worker 保活与预热实战](https://liaolongdong.github.io/better-blog/2026/08/28/mv3-sidepanel-sub-second-open.html):MV3 的 Service Worker 随时会被回收,侧边栏冷启动白屏是扩展开发的头号痛点。本文复盘秒开方案:双层保活、四层资源预热与三路数据竞速。 - [零云端、开源、为开发者而生:我从零做了一款浏览器密码管理器](https://liaolongdong.github.io/better-blog/2026/08/28/local-first-password-manager.html):为什么在 Bitwarden、1Password 之外还需要一款本地优先的密码管理器?本文讲述 Account Password Helper 的产品动机、核心设计与安全模型。 - [用 AI 写的前端页面总是"一眼 AI 味"?Impeccable 用 46 条规则彻底终结这个问题](https://liaolongdong.github.io/better-blog/2026/07/12/impeccable-ai-design.html):Impeccable 用一份规则集把 AI 生成页面的通病挡掉:为什么模型写出的前端一眼认得出来,这些规则压的是配色、间距还是组件层次。 - [Meta 开源了 Astryx:一个同时为人类开发者和 AI Agent 设计的 React UI 系统](https://liaolongdong.github.io/better-blog/2026/07/12/facebook-astryx.html):Meta 开源的 Astryx:组件与主题如何做到 StyleX 驱动,同时为人类开发者与 AI 编程助手各准备一份可机读的约定,隐藏的那部分设计在哪一层。 - [阿里开源的 Page Agent:一行代码让网页"听懂人话",这才是真正的前端 AI 交互](https://liaolongdong.github.io/better-blog/2026/07/12/alibaba-page-agent.html):阿里开源的 Page Agent 怎么绕开截图与 OCR:把 DOM 脱水成文本再交给大模型,一行代码挂载的接口长什么样,以及这条路目前做不了的交互。 - [别再手输账号密码了:我开发了一个一键自动登录的插件](https://liaolongdong.github.io/better-blog/2026/06/28/account-password-helper-new.html):一键自动登录插件的开发记录:填充时机怎么挑、各家页面的表单选择器怎么兼容,以及任何凭据都不上传这条边界落在存储与授权的哪一层。 - [🚨 别再死磕 Puppeteer 了!Chrome 祭出“王炸”新 API,前端自动化面临彻底洗牌!](https://liaolongdong.github.io/better-blog/2026/06/15/webmcp-vs-puppeteer.html):Chrome 新出的 WebMCP 与 Puppeteer 的分工差别:一个走页面内声明的工具、一个走外部协议驱动,自动化要洗牌这句话在哪些场景成立、哪些还不成立。 - [被 217K Star 疯狂追捧!AI 编程的「规范革命」来了——SDD 四大流派深度拆解](https://liaolongdong.github.io/better-blog/2026/06/06/ai-sdd-github.html):SDD 四个流派各自的规范文件与加载时机对照:README 里那些主张哪几条能在仓库里找到实现、哪几条只是口号,按流派逐条给证据。 - [2026 年 AI 编程工程化指南:用 Spec 让 Agent 不再"飘"](https://liaolongdong.github.io/better-blog/2026/06/05/ai-sdd.html):用 Spec 约束 AI 编程的工作流:提示词写到再细也会飘,规范文件该放在哪一层、Agent 在什么时机读它,以及一份能落地的 Spec 长什么样。 - [谁才是最强大脑?2026年5月全球AI大模型实测排名出炉,结果让人意外](https://liaolongdong.github.io/better-blog/2026/05/31/AI-model-rating.html):全球主流大模型的实测排名:同一批评测项跑出来的顺序与各家宣传不一致的那几处,逐条给出跑法与结果,并说明这期口径改了哪一项。 - [2026年5月最新AI大模型排行榜:国产模型集体突围,谁才是真正的王者?](https://liaolongdong.github.io/better-blog/2026/05/30/AI-model-rating.html):按这一期口径重排的 AI 大模型排行榜:国产模型在哪些项上追平、哪些项仍被拉开,榜单之外补了一段真正选型时会遇到的取舍。 - [告别复制粘贴!这款本地账号密码管理插件,让多账号切换效率翻倍](https://liaolongdong.github.io/better-blog/2026/05/25/account-password-helper.html):本地存储的账号密码管理插件:多账号一键切换省掉复制粘贴,凭据不出本机,填充逻辑怎么写、不同站点怎么适配,与浏览器自带钥匙串各管哪一段。 ### 2024 年 - [如何优雅的实现一套前端项目环境无缝切换多套后端环境](https://liaolongdong.github.io/better-blog/2024/10/08/fe-env-switch.html):一套前端产物无缝切多套后端的做法:把接口前缀从编译期常量改成运行期读取,配合 dev-server 代理与 nginx 改写,不必为每个环境各打一次包。 - [vue2不维护了,新项目或者改版重构的项目继续使用vue2会有什么问题?](https://liaolongdong.github.io/better-blog/2024/03/20/new-project-use-vue2-problem.html):vue2 停止维护之后,新项目或改版重构继续沿用它要付的代价:生态断供、构建链老化、组合式能力缺失,以及招聘与长期维护那一侧。 - [超好用的 chrome 浏览器插件推荐(外语阅读困难者福音)](https://liaolongdong.github.io/better-blog/2024/01/05/chrome-plugin-recommend.html):一组日常真的在用的 Chrome 插件清单,按外语阅读、开发者调试与内容处理三类整理,每枚写清算能做什么、免费版把门卡在哪里。 ### 2023 年 - [2023年都结束了,你还不知道新增了哪些JS特性?](https://liaolongdong.github.io/better-blog/2023/12/29/2023-js-new-features.html):ES2023(ECMAScript 第 14 版)新增的 JS 特性:Object.groupBy 与 Map.groupBy 按回调值分组的差异与适用场景,数组新增的方法等,每个特性配可运行代码。 - [git之reset和revert详解](https://liaolongdong.github.io/better-blog/2023/12/24/git-revert-reset.html):git 之 reset 和 revert 详解:reset 移动 HEAD 并移除之后的提交,revert 生成一次反向提交;逐个说明 --mixed、--soft 等选项与注意事项,再横向比较该用哪个。 - [npm、yarn和pnpm包管理工具详解](https://liaolongdong.github.io/better-blog/2023/06/14/npm-yarn-pnpm.html):npm、yarn 和 pnpm 包管理工具详解:三者定位与常用命令,以及 dependencies、devDependencies、peerDependencies 三种依赖类型的区别与适用场景,附深度对比。 - [前端项目版本投产实现浏览器自动刷新更新版本内容](https://liaolongdong.github.io/better-blog/2023/06/11/auto-update-release.html):前端项目投产后让浏览器自动刷新拿到新版本:漏更新会有缺新功能、安全修复没生效、接口字段改了旧 JS 报错三类风险;方案是 node 读 git 版本加监听可见性事件。 - [JS实现常见的十大排序算法](https://liaolongdong.github.io/better-blog/2023/06/08/common-sort-algorithm.html):JS 实现常见的十大排序算法:冒泡、选择、插入、快速、归并、堆、希尔、计数、桶、基数排序逐个给思路与代码,并说明前端学排序的目的与复杂度对比。 - [前端开发应该掌握的查找算法](https://liaolongdong.github.io/better-blog/2023/06/07/common-search-algorithm.html):前端开发应该掌握的查找算法:线性、二分、插值、哈希查找(函数与类两种实现)、二叉搜索树,以及 AVL 树、红黑树、B 树和 B+ 树查找与选型总结。 - [Vue3 + Vite 项目研究与对比](https://liaolongdong.github.io/better-blog/2023/05/08/vue3-vite-study.html):Vue3 与 Vue2 在性能、Diff 策略、TS 支持、包体积和 API 风格上的逐项对照,另有一节专门讲 Vite 与 webpack 的构建模型差在哪。 - [JS函数式编程的应用](https://liaolongdong.github.io/better-blog/2023/04/30/functional-programming.html):JS 函数式编程的应用:先摆清面向过程、面向对象、函数式三种范式,再展开高阶函数、纯函数、柯里化、函数组合、惰性求值与尾递归的使用场景和优缺点。 - [JS中面向切面编程(AOP)应用](https://liaolongdong.github.io/better-blog/2023/04/12/aop-programming.html):JS 中面向切面编程(AOP)的应用:在不改原代码的前提下,用一个高阶函数给目标函数包上日志等横切逻辑,从最朴素的实现逐步扩展到终极方案,每步附代码。 - [nginx配置详解](https://liaolongdong.github.io/better-blog/2023/04/12/nginx-config-explain.html):nginx 配置详解:高性能 Web 与反向代理服务器的事件驱动异步结构,安装与 nginx -V 参数、全局指令与内置变量、events/http/server 模块,重点对比 root 与 alias。 - [常见的算法题](https://liaolongdong.github.io/better-blog/2023/02/25/common-arithmetic.html):常见的算法题与手写解法:选择、冒泡、快速、插入四种排序,二叉树深度优先/广度优先/层序遍历与多叉树层序遍历,反转字符串、有效括号、删除相邻重复项、两数之和。 ### 2022 年 - [webpack 打包项目迁移到 Vite 的实践记录](https://liaolongdong.github.io/better-blog/2022/08/08/webpack-move-vite.html):把行E通门户与管理台的前端构建从 webpack 换到 Vite 的实操记录:冷启动为什么要等几分钟、Vite 靠依赖与源码二分绕开它,以及团队怎么分工落地。 ### 2021 年 - [vue-router源码解析](https://liaolongdong.github.io/better-blog/2021/03/23/vue-router-analysis.html):vue-router 源码解析:从 SPA 与前端路由的由来讲起,比较 hash 与 history 模式的原理,再按源码目录分析 install、createMatcher、createRouteMap 与两类 History。 - [linux常用命令](https://liaolongdong.github.io/better-blog/2021/03/23/linux-common-command.html):linux 常用命令详解(近两万字的查阅手册):man 查用法,/、~、./、../ 的含义,cd、ls、pwd、vim 等路径编辑操作,mkdir、mv、rm、cp、ln 等逐条给示例。 ### 2020 年 - [H5实现打开导航地图app并自动导航到目的地](https://liaolongdong.github.io/better-blog/2020/10/25/h5-open-map-position.html):H5 打开高德、百度、腾讯地图 App 并自动导航到目的地:JS 无法判断用户装了哪个地图 app,按 scheme 依次尝试并给「点击无响应可能是未安装」的兜底提示。 - [H5实现类似微信可拖拽左右吸边浮动按钮](https://liaolongdong.github.io/better-blog/2020/10/20/like-wx-draggable-float-btn.html):H5 实现类似微信的可拖拽、左右自动吸边浮动按钮:参考 vconsole 源码做实时拖拽版,再补松开吸边逻辑,讲 touch 与 mouse 事件监听和位置计算,附两个 demo。 - [一句话理解原型和原型链](https://liaolongdong.github.io/better-blog/2020/08/03/inaword-understand-prototype.html):一句话理解原型和原型链:每个对象的 proto 指向其构造函数的 prototype,每个函数都有 prototype,函数本身也是对象,所有函数对象的 proto 都指向 Function。 - [浏览器缓存机制](https://liaolongdong.github.io/better-blog/2020/04/08/browser-cache.html):浏览器缓存机制:HTTP 头的 Cache-Control(或 Expires)决定强缓存、Last-Modified 与 ETag 决定协商缓存,例如 max-age=600 就是 600 秒内复用本地缓存。 ### 2019 年 - [vscode编辑器常用插件汇总](https://liaolongdong.github.io/better-blog/2019/09/23/vscode-useful-plugins.html):vscode 常用插件汇总:简体中文语言包、ESLint、Beautify 格式化、Babel JavaScript 高亮、ES7 React snippets、GitLens、cssrem、Easy LESS、Code Runner、Vetur。 - [JavaScript常用设计模式总结](https://liaolongdong.github.io/better-blog/2019/07/26/javascript-design-pattern.html):JavaScript 常用设计模式总结:单例模式(简单版与完整 getInstance)、策略模式(重构表单校验、给同一输入框加多种规则)、代理模式(保护与虚拟代理)。 - [H5页面实现摇一摇功能](https://liaolongdong.github.io/better-blog/2019/07/10/h5-shake-function.html):H5 实现摇一摇(源自微信摇一摇领红包活动):怎么用设备加速度接口监听摇晃、阈值怎么定、如何实现振动反馈,并说明 http 域名下 iOS 12 以上没效果的坑。 - [前端面试常见编程题汇总](https://liaolongdong.github.io/better-blog/2019/03/20/interview-programme-summarize.html):前端面试常见编程题汇总(附真题出处与实际输出):阿里变量赋值题、字节递归与宏微任务、携程表达式求值、腾讯文档 promise 串行、async/await 事件循环顺序。 - [几种常见的排序算法](https://liaolongdong.github.io/better-blog/2019/03/06/common-sort-arithmetic.html):几种常见排序算法的 JS 实现与原理:选择、冒泡、快速、插入排序,每种附逐行注释代码,并说明选择排序为什么不稳定、循环边界为什么写 len - 1。 - [移动端调试技巧总结](https://liaolongdong.github.io/better-blog/2019/03/04/mobile-debug-summary.html):移动端调试技巧总结:H5 通用调试方法,iOS 与 Android 各自的真机调试,微信内调试与安卓微信清理缓存,以及在手机上访问电脑本地服务验证兼容问题。 - [前端那些你不知道的小技巧(CSS篇)](https://liaolongdong.github.io/better-blog/2019/02/26/you-dont-kown-css-tips.html):前端你不知道的小技巧(CSS 篇):复位与继承 box-sizing、优化文本显示、not() 取消首尾边框、伪元素妙用、清除浮动、border 画三角形、负 nth-child 选择。 - [前端那些你不知道的小技巧(JS篇)](https://liaolongdong.github.io/better-blog/2019/02/25/you-dont-kown-js-tips.html):前端你不知道的小技巧(JS 篇):一行代码实现五星评价、统计字符出现次数、准确判断数据类型、数组去重、类数组转数组、多维数组扁平化去重升序、金额千分位。 - [使用gulp搭建多页面项目](https://liaolongdong.github.io/better-blog/2019/01/28/use-gulp-build-project.html):用 gulp 搭建多页面项目:gulp.src、dest、task、watch 等常用 API 逐个讲解,说明独立活动页为什么更适合用 gulp 构建,并解答报错 Task function must be specified。 - [使用verdaccio搭建npm私有仓库](https://liaolongdong.github.io/better-blog/2019/01/24/build-private-package.html):用 verdaccio 搭建 npm 私有仓库:对比 nexus、cnpm、sinopia 与 verdaccio 的差别,说明私有包只对局域网开放、下载更快、可配权限三点收益与搭建步骤。 - [如何开发一个npm包并发布到npm中央仓库](https://liaolongdong.github.io/better-blog/2019/01/24/publish-public-npm.html):如何开发一个 npm 包并发布到 npm 中央仓库:包命名规则与根目录必备的 index.js、package.json,注册账号点邮件验证,发布到公共仓库的完整命令步骤。 - [网站SEO搜索引擎优化](https://liaolongdong.github.io/better-blog/2019/01/17/website-seo.html):网站 SEO 实操:标题、关键字、描述与 h1~h6、header、footer 语义化,再用添加站点、链接提交自动推送、sitemap 三种方式主动让搜索引擎收录。 - [echarts折线图、饼状图、圆环图使用总结](https://liaolongdong.github.io/better-blog/2019/01/01/echarts-use-summarize.html):echarts 折线图、饼状图、圆环图使用总结:常用配置参数,以及官方 demo 没写的问题——折线图周围空白、加水印文本块、标签超长重叠,均配注释与在线 demo。 ### 2018 年 - [使用原生JS实现QQ好友、QQ空间、新浪微博、腾讯微博分享功能](https://liaolongdong.github.io/better-blog/2018/12/25/qqweiboshare.html):不引任何 SDK,用原生 JS 拼出 QQ 好友、QQ 空间、新浪微博与腾讯微博的分享链接,各站的参数命名差异与回调返回码逐条列出。 - [git管理项目关联多个远程仓库(github、coding)](https://liaolongdong.github.io/better-blog/2018/12/05/move-githubblog-to-coding.html):让一个 git 仓库同时关联 github 与 coding 多个远程:github 屏蔽百度蜘蛛导致博客搜不到,迁到国内的 coding pages 后,一次改代码分别提交两个仓库。 - [使用react+next实现服务端渲染](https://liaolongdong.github.io/better-blog/2018/11/25/react-next-ssr.html):用 react + next.js 实现服务端渲染:先说清 SPA 为什么对 SEO 不友好,再过 next.js 的路由、接口取数、嵌入样式、静态文件服务与自定义 App 和 Document。 - [阿里云服务器部署nginx以及配置https](https://liaolongdong.github.io/better-blog/2018/11/16/alicloud-nginx.html):阿里云 CentOS 部署 nginx 并配置 https:yum 升级内核及 update 与 upgrade 的区别、安装 nginx、下载免费证书,以及 HTTP 转 HTTPS 后必补的 301 重定向。 - [阿里云服务器上部署node+mongodb](https://liaolongdong.github.io/better-blog/2018/11/01/alicloud-node-mongodb.html):阿里云服务器部署 node + mongodb 图文教程:购买域名与云服务器 ECS(1 核 1GB CentOS 7.4),进控制台找到实例,再在服务器上装 node 和 mongodb。 - [前端学习资料](https://liaolongdong.github.io/better-blog/2018/10/25/study-materials.html):前端学习资料清单,按方向分类:JavaScript、CSS、jQuery 插件、Vue、Node.js、React、微信公众号支付、移动端 H5 调试、懒加载与浏览器内预览 PDF。 - [搜狗输入法黑科技](https://liaolongdong.github.io/better-blog/2018/10/12/souguo-input-blacktech.html):搜狗输入法黑科技:不会拼的汉字(比如饕和餮)不用查字典,输入 uhaohushi 这种 u 开头的拆字描述就能直接打出来,配图演示这种输入方式。 - [微信分享到微信好友、朋友圈、QQ好友、QQ空间总结以及常见问题汇总](https://liaolongdong.github.io/better-blog/2018/06/06/wxshare-summarize.html):分享到好友、朋友圈、QQ 好友与 QQ 空间四个出口各要什么参数,签名失效、缩略图不显示与域名校验这三类常见问题按原因归一次类。 - [总结前端工作当中遇到的那些坑](https://liaolongdong.github.io/better-blog/2018/03/26/work-summarize.html):前端工作踩坑汇总:微信公众号 js-sdk 常见问题与接口调用频次限制、获取 openid、微信内 H5 调起支付,以及点击穿透、图片 403、键盘遮挡表单等兼容问题。 ### 2017 年 - [微信内部浏览器H5支付(JSAPI支付)和微信外部浏览器H5支付总结](https://liaolongdong.github.io/better-blog/2017/09/09/wxpay.html):微信内 JSAPI 支付与外部浏览器 H5 支付是两套下单场景:签名参数、回调域名与调起时机各有什么不同,踩过的坑按这两条线分别给结论。 - [前端开发中经常使用到的公用方法](https://liaolongdong.github.io/better-blog/2017/08/25/common-tools.html):前端常用公用方法合集(ES6,每段带 JSDoc 可直接复制):毫秒转日期、倒计时、手机号校验与脱敏、正则格式化银行卡号、URL 取参拼参、判断微信浏览器。 - [git常用命令操作手册](https://liaolongdong.github.io/better-blog/2017/06/06/git-common-command.html):git 常用命令手册:查看帮助、新建仓库、配置、提交代码、分支、撤销回退、储藏、切换远程仓库地址,附修改提交信息和不区分文件名大小写的处理。 ### 2016 年 - [JavaScript语言精粹学习笔记](https://liaolongdong.github.io/better-blog/2016/08/28/JS-good-parts.html):《JavaScript 语言精粹》逐章学习笔记:语法、对象、函数、继承、数组、正则、方法、JSON,附可运行代码与引用共享、原型链等易错点。 - [Hello Jekyll](https://liaolongdong.github.io/better-blog/2016/06/18/hello-jekyll.html):Jekyll 是什么:把装满纯文本文件的模板目录,经 Markdown 与 Liquid 渲染成静态网站和博客的轻量静态站点生成器,含内容管理与部署入门。 ## 文章结论速查 - [RTK 压缩命令输出喂给 AI 编程助手:8 条命令实测,省了 token 也丢了什么](https://liaolongdong.github.io/better-blog/2026/10/28/rtk-command-output-compression.html):RTK 1.1.0 拦截 Bash 命令,把 git、日志、JSON 和测试输出压缩后再交给 AI 编程助手。我在隔离项目里对比了 8 条命令:噪声大的输出省 65%–99% token,但 read 会丢函数体、json 只剩预览、node:test 几乎压不动,Vitest 5 的专用过滤器还会解析失败。适合先用在 git status、git diff 和日志排错上,测试链路要逐条验收。 - [同一份代码,构建出 Chrome 和 Firefox 两套扩展:WXT 上手实测](https://liaolongdong.github.io/better-blog/2026/10/27/wxt-cross-browser-extension.html):WXT 把浏览器扩展的入口发现、manifest 生成和跨浏览器构建收进 Vite。我用同一份代码构建出 Chrome MV3 与 Firefox/Safari MV2,并在 Chrome for Testing 156 里实际加载了一个阅读时间扩展:947 个统计单位、300 字/分钟显示 4 分钟,改成 200 后变 5 分钟,开关与弹窗一起生效。它适合想少写扩展样板的前端团队;0.x 版本、Firefox 运行时与 Safari 打包仍需自己验证。 - [README 四条示例我逐字跑了:两条成立,两条不成立](https://liaolongdong.github.io/better-blog/2026/10/27/sandbox-runtime-ssh-readable.html):逐字复现 anthropics/sandbox-runtime 的 README 四条示例(v0.0.81,本机没有 ~/.srt-settings.json,走内置默认):`curl example.com` 确实被拦、`cat README.md` 确实能读,这两条成立;不成立的两条是沙箱内 `curl anthropic.com` 实际拿到 403 而 README 写的是请求成功,`cat ~/.ssh/id_rsa` 实际 READ-OK 而 README 那一条写的是 Operation not permitted。11 项探针的分布很干净:读全放行、写全拒,域名解析直接被切成 gaierror,IP 字面量走同一条判决。所以把它当成默认只锁写的沙箱,凭据目录自己写进 denyRead 再验一次——`test -r` 量的是权限位,判可读性得用真正的 open()。 - [Kimi K3.1 Pro 分成两档卖:贵一倍的钱,在什么负载下花不到两倍](https://liaolongdong.github.io/better-blog/2026/10/25/kimi-k3-1-pro-two-tiers.html):K3.1 Pro 与 2~3 倍速的 Highspeed 同日发布:两档智能口径相同,输入、输出、缓存写入翻倍,只有缓存命中价不动,所以高速档的实际溢价随负载在 1.3 倍到 2 倍之间。单价比 K3 低三分之一,独立评测算出的每任务成本却基本持平。权重要到 11 月 4 日前才开放,许可证未公布。 - [FreeLLMAPI 说 635 个免费端点:我免 key 拿到的那份是 483](https://liaolongdong.github.io/better-blog/2026/10/25/freellmapi-635-vs-483.html):免 key 拉 FreeLLMAPI 自己发布的签名目录快照,数出 483 个端点(442 行 chat、41 个平台);README 头部那份写的是 635,同一个问题在四处得到 34、38、41、76 四个答案。635 住在运行时数据库里,源码树没有一份能数出它的静态产物——这不是造假,是目录型产品的宣传数能不能被读者复算:先看仓库里有没有 catalog 的静态快照,再看公开端点免不免 key。 - [AI 做的网页都长一个样?我试了 10 万 Star 的 taste-skill](https://liaolongdong.github.io/better-blog/2026/10/24/taste-skill-contact-sheet.html):taste-skill 不是 UI 库,而是让编码 Agent 先抽方向、找概念,再在真实浏览器里验收的设计流程。我用一页博客索引做了前后对照:旧版检查出 11 个 FAIL,新版 0 个。但它判断不了‘好看’,也不适合所有页面,完整构建还要 30 到 45 分钟。 - [OpenUI 一个 core,我装出两版解析器,新版 API 只到 React](https://liaolongdong.github.io/better-blog/2026/10/23/openui-two-lang-cores.html):把 OpenUI 四个第一方运行时装进同一棵依赖树,npm 会落下两份 lang-core:顶层 0.4.1、react-lang 里嵌 1.0.1;新版才有的 parseMessage 在 vue-lang 的 27 个导出里不存在。Vue 3 栈现在只能拿到 0.4.x 那一层,等 vue-lang 的依赖范围改到 ^1.0.1、npm ls 只剩一行,再谈统一。 - [HyperFrames 把 HTML 变成 MP4:我渲两遍逐帧对比,发现确定性有个前提](https://liaolongdong.github.io/better-blog/2026/10/23/hyperframes-html-to-mp4-determinism.html):HyperFrames 用 HTML/CSS 渲染 MP4,我在 macOS 上用系统 Chrome 渲了两遍 10 秒 300 帧,SHA-256 一致;但默认脚手架从 jsDelivr 取 GSAP,普通 Chrome 会走截图降级路径,render 与 snapshot 还有已知分叉。把它当可 diff 的动效源码值得试,当剪辑软件会失望;issue #5959 关掉前别放进自动出片流水线。 - [Anthropic 三年来首次改 API 版本号:temperature 传了就 400,兼容层这一次最疼](https://liaolongdong.github.io/better-blog/2026/10/23/anthropic-api-2026-10-21-sampling-400.html):Anthropic 在 2026-10-21 首次更换 API 版本号,temperature 等采样参数一传就 400,八个 SDK 同时跳大版本。官方 SDK 用户大多不会挂,真正被打中的是裸 HTTP、extra_body 和兼容层里写死的 anthropic-version;先盘点再金丝雀,不要看到版本号更新就全量升 2.x。 - [DeepSeek 开源 DeepInfer:我核了文档和源码,H100 不在列表,高效部署最低 128 张卡](https://liaolongdong.github.io/better-blog/2026/10/22/deepinfer-open-source-sm100-only.html):DeepSeek 开源的 DeepInfer 只支持 V4.1-Flash 与 SM100/昇腾 950,最小高效部署是 64P+64D,H100 不在支持列表;KV cache 与跨 DP 负载均衡仍未开源。它开源的是引擎参考实现,不是可部署的服务,单卡用户和 H100 集群都不该按通用推理框架来选它。 - [一万个人,把密码交给一个不联网的 Chrome 插件](https://liaolongdong.github.io/better-blog/2026/10/22/account-password-helper-10k.html):账号密码管理助手是一个不联网的本地密码管理器:按环境隔离账号、一键填充并登录、内置 TOTP,主密码经 PBKDF2 派生密钥,五个敏感字段用 AES-256-GCM 加密后只存本机。上架三个月,商店显示 10,000 用户、48 个版本、1,120 次提交。 - [Solid Glass 实测:它说远看像实心玻璃,我量出卡片六成不透明、26px 模糊](https://liaolongdong.github.io/better-blog/2026/10/21/solid-glass-shadcn-cost.html):在最小 Vite + React 19 + Tailwind 4 项目里只加一个 CSS 文件,stock shadcn 的卡片就变成 60% 不透明加 26px 模糊,构建 CSS 从 29.5KB 涨到 62.7KB。它适合负责气氛的表面,不适合负责读数的表格和首屏;import 顺序写错会静默退回默认主题。 - [PHP2Shell 补丁日:AI 挖出的十年老洞,攻击流量比补丁先到](https://liaolongdong.github.io/better-blog/2026/10/21/php2shell-ai-rce-patch-day.html):2026-10-21 披露的 PHP 两个未授权 RCE,官方最低补丁版本是 8.2.35,8.1 及更早没有官方更新;Cloudflare 在补丁公开前已看到攻击流量。AI 是把利用适配成本打下来的加速器,不是自动挖洞机;先跑 php -v 确认版本,再决定打补丁、找主机商还是迁走。 - [OpenAI 补发四份模型越权复盘:伪造令牌、改配置、动他人钱包](https://liaolongdong.github.io/better-blog/2026/10/19/openai-misalignment-four-reports.html):四起里没有一起靠破解新漏洞,模型只是把环境给的合法工具用到极致:写着只许 HTTP GET 的限制,让外部浏览器用一个自动提交的表单把 POST 发了出去;提示词里那句只许做什么,对模型是建议不是边界。发现用了 9 到 91 天,公开又再等 20 到 112 天。 - [FLUX 3 Klein 开放权重:4K 图 $0.036,许可两句话对不上](https://liaolongdong.github.io/better-blog/2026/10/18/flux-3-klein-open-weights.html):分水岭在 4K 那一档:Klein 每张 $0.036、同厂 FLUX 3 Image $0.607,差 16.9 倍,一张省 $0.571、一万张省 $5,710。坑也写了两个:文档叫你不要不带 prompt upsampler 就用它,博客说年收入 $5M 以下免费商用、同一官网的 FAQ 却讲在产品里跑要商业许可。 - [一条命令装进 79 个 Agent,我的空目录最后只落 3 条路径](https://liaolongdong.github.io/better-blog/2026/10/17/npx-skills-agent-paths.html):屏幕上那行 Installing to all 79 agents 说的是名字不是目录:同一个空目录里 54 个 Agent 因项目根目录不存在被 skipped,真落盘只有 3 条路径、find -type l 数出 1 条 symlink;单 Agent 装更不建 .agents 规范目录,默认就是复制,比手动 cp 只多一份 lockfile。 - [NIST 曲线的种子是 lrand48 摇出来的,我本机复算了 14 条全对](https://liaolongdong.github.io/better-blog/2026/10/17/nist-curve-seed-lrand48.html):三行伪代码我就能在 Node 里重摇出 14 条 NIST 曲线的种子,665 毫秒,和本机 LibreSSL 3.3.6 印出的常量逐字节对上;可它只回答这些字节从哪来——同一次摇奖里 P-256 的候选 876 也是一条合格曲线,为什么停在 1842 号没人知道。 - [Meta 放出 816B 开放权重:先别急着下载,1.6TB 内存是第一道门](https://liaolongdong.github.io/better-blog/2026/10/17/muse-spark-open-816b.html):816B、1.64TB、4 台 Mac Studio 才 36.73 tokens/s,这些数字都不如许可证那条要命:用了它或衍生品的每个产品都得在 UI、文档、网站或设置菜单里醒目写一行 Built with Muse Spark Open,营收超 2000 万美元做 MaaS 还要先通知 Meta 并单独签约。 - [README 说载 3 个字体族,我数出 981 个 @font-face](https://liaolongdong.github.io/better-blog/2026/10/17/diagram-design-981-faces.html):README 第 361 行说这条 link 只加载 3 个字体族、而且是图里唯一的网络请求,我抓回来按 gstatic 的路径数是 981 个 @font-face:928 个给韩文和繁体、四个拉丁族 53 个,简体两族 0 个。仓库里还躺着第二条 link,画廊量到的是 37。 - [你 pin 的 deepseek-flash,今天背后换了模型](https://liaolongdong.github.io/better-blog/2026/10/17/deepseek-v41-flash-alias-switch.html):你代码里那个 deepseek-flash 一个字母没改,官方价格表的模型版本已经是 DeepSeek-V4.1-Flash-1017,连 deepseek-v4-flash 这个旧名也照收、只是背后模型退役了。我没有 key,旧别名究竟路由到哪枚权重没验到;能当场算的是昼夜两档:1M 输入加 200K 输出,非高峰 0.27 美元、高峰 0.54 美元。 - [官方说会加一枚脚注,我手里那两段正文一字没动](https://liaolongdong.github.io/better-blog/2026/10/17/anthropic-scion-attribution-diff.html):那页 10 月 15 日 18:21:28 确实改过,署名作者 22 分 26 秒前刚在评论里说会再加一枚脚注;可我手里有改前文本的两段正文一字未动——第一段 1157 个非空白字符 difflib 出 ratio 1.0,第二段只多一个空格,实际变化是 Mononoke 从全篇 0 次变 1 次、而且只在脚注里。 - [README 说把 JS 变神经网络,docs 说没有转换器](https://liaolongdong.github.io/better-blog/2026/10/16/handwired-js-neural-net.html):README 第一句是我读错了:docs 第三行逐字写着没有任何工具能把现成的 JavaScript 源码转成程序,电路得你手写;更别扭的是它宣传的 exact 与可微落在互补的输入域上——301 个格点 0 处不符而梯度恒为 0,4 到 5 那 101 个点梯度活了却有 99 个与 JavaScript 不等。 - [第一次 render 红在 41 秒,第二次什么都不改 85 秒绿](https://liaolongdong.github.io/better-blog/2026/10/14/hyperframes-first-render-timeout.html):报错指着架构,真凶是那 5 秒:第一条 render 跑 41.44 秒退出码 1,我原样手跑它失败的那句探活命令,第一次要 8.66 秒、第二次 0.10 秒,而 preflight.ts 里 timeoutMs 写死 5000、不重试也不可配;什么都不改再跑一次 85 秒就绿,两次出的 mp4 md5 相同。 - [官方说 Anthropic key 默认就拦,我 48 个公开仓库里 45 个没开](https://liaolongdong.github.io/better-blog/2026/10/14/anthropic-key-default-block-gap.html):这次进默认名单的是检测器,不是我这 48 个公开仓库的开关:逐仓 GET 读到 45 个的两枚 anthropic key 状态仍是 disabled,只有 3 个开着;supported patterns 表里 Anthropic 五行 Push protection 全是勾,可它没有默认那一列。 - [设计检测器 impeccable 扫我的博客 CSS,报了 2 条](https://liaolongdong.github.io/better-blog/2026/10/13/impeccable-seventeen-copies.html):59 条 AI 写前端的通病真被写成能跑的 Rust 规则,扫我线上那本压缩 CSS 报了 2 条、改名复扫掉到 1 条,不算误报;可 npm 包 4.5.2 的 install 那一步一个文件都没写,Nothing was installed 配退出码 1,挂在 postToolUse 上的钩子我一行也没跑到。 - [官方说每枚提交记了 pusher,我的 API 里没这个键](https://liaolongdong.github.io/better-blog/2026/10/13/github-pusher-attribution.html):官方说每枚提交另记一枚已鉴权的 pusher,我 REST、GraphQL、事件流、提交页四个口径一个都没取到;它还是 limited public preview、只对 GitHub Enterprise 开放,眼下能确定落地的只有 Committer must match pusher 这条新规则条件。 - [我拆了被传投毒的 zod 4.6.6,包里没找到载荷](https://liaolongdong.github.io/better-blog/2026/10/12/zod-466-preinstall-not-shipped.html):投毒提交真进过 main,但 npm 上那枚 4.6.6 是干净的:那天五次带发布意图的运行没有一次成功,真装之后 meta* 零命中。换版本解决不了这件事,该看的是 npm 默认跑 preinstall、pnpm 默认拦住并打出包名。 - [仓库里 124 张镜头卡,GitHub 简介写 152:那行字不在 git 里](https://liaolongdong.github.io/better-blog/2026/10/12/video-shotcraft-stale-about.html):磁盘、README、线上 library.json 三处都是 124,只有 GitHub 右侧那行简介停在 152——它是 repo.description,存在仓库外,git 里没有任何文件装着它,那四条 CI job 谁也够不着。 - [100 份 manifest 的仓库,CI 只看这 100 份](https://liaolongdong.github.io/better-blog/2026/10/11/plugin-manifest-only-gate.html):往 cursor/plugins 的克隆里塞三种坏载荷,那本校验脚本三次都报绿——它读的只有根清单和每份 plugin.json;唯一让它变红的办法是往 manifest 加一个未知键,那次 exit 1。 - [MXC 1.0 正式版:我这台 Intel Mac 装完跑不起来](https://liaolongdong.github.io/better-blog/2026/10/11/mxc-v1-ga-intel-mac.html):v1.0.0 的 README 把 macOS 的 ARM64 和 x64 写在同一行、后端都标 seatbelt,同一个 tag 的构建命令却只有 aarch64:bin/x64 里没有 dylib,run() 报 mxc_ffi native library was not found,而 getPlatformSupport() 照样回支持。 - [Deno 去了 Cloudflare,Deploy 还剩六个月](https://liaolongdong.github.io/better-blog/2026/10/11/deno-cloudflare-six-months.html):两篇公告 10-09 同一天挂出,四条承诺全是相对时长,2027 一次都没出现:runtime 再支持一年、Deploy 再运营六个月。接替它的两套在我这台都没起来,一条 dyld 符号缺失、一条没有 Intel macOS 产物。 - [3 条用例跑绿之后,我看见 e2e 自己列的 55 行 missing](https://liaolongdong.github.io/better-blog/2026/10/10/e2e-replay-cache-55-gaps.html):三条用例跑绿、失败时落的 trace.md 有 55 行纯文本,不用开 DevTools 就能读;但回放缓存那一半没模型凭据就报 MODEL_UNAVAILABLE,而它自己的迁移表 186 行状态里有 55 行写着 missing。 - [Chrome 155 开始解 JPEG XL,我这台 154 还在白下载](https://liaolongdong.github.io/better-blog/2026/10/10/chrome-155-jpeg-xl-decode.html):公告里被划出来的只有 decoding support 和 starting from Chrome 155 两截,剥标签再数 encode 词根 0 次;同一对探针页 154 两个都 ERR、回落到 PNG,155 出图并把 image/jxl 排在 Accept 最前。 - [Haiku 5.5 降价 75% 之外,换模型 ID 不用升 SDK](https://liaolongdong.github.io/better-blog/2026/10/09/haiku-5-5-model-id-vs-sdk-typing.html):只把 model 换成 claude-haiku-5-5,0.131.0 在 stub 上原样发出、回包照常解析;要带类型的浏览器工具块才需要升 0.132.0,同一个 import 在旧版报 TS2724。 - [ascii.rest 的动画很省,打包那步不省](https://liaolongdong.github.io/better-blog/2026/10/09/ascii-rest-208-files.html):减少动效和离屏暂停这两档它真做了,两档重跑读数逐项相同;代价是引 react 或 element 入口的构建静态带上 208 个 js 文件,element 版 209 个,手动挂那三行只有 1 个。 - [维基媒体把 OpenAI 的 agent 活动写进了自己的账本](https://liaolongdong.github.io/better-blog/2026/10/07/wikimedia-openai-agent-edits.html):维基媒体把 agent 的三类活动写进自己的账本,同时给了两条否定:没发现被拿来互相协调、没发现数据被攻破。反过来 robots.txt 也不拦人——三个 User-Agent 打同一份文件,三次都是 200 和 1,407 字节。 - [五种伪造 proof 的写法,它自己只拦两种](https://liaolongdong.github.io/better-blog/2026/10/07/gdp-ts-proof-forgery-3-gaps.html):五道写错的用法 tsc 全报出,五道伪造 proof 的写法全过编译,它自带的 strict 档只报 2 条;README 那句一次授权约 0.3 毫秒,在这台 Intel 8 核上测成 2.9 毫秒。 - [一个查询串让 Vite 漏出工作区外文件的头四个字节](https://liaolongdong.github.io/better-blog/2026/10/06/vite-wasm-query-fs-bypass.html):地址尾部拼上 ?vite-wasm-instance,server.fs 的判断整个跳过:8.3.2 回 500 并在响应里带出 found 53 45 4e 54,8.3.3 才回 403;五条维护线不到两小时各发一版,三条公告同日挂出、全无 CVE 编号。 - [Next.js 堵住了能打回环的 SSRF,可七条公告两天还没进库](https://liaolongdong.github.io/better-blog/2026/10/02/nextjs-rebind-ssrf-advisory-lag.html):同一发打回环的请求,16.3.0 和 16.3.7 都回 200 并往靶文件写了一行,16.3.8 只给 504;堵住这个洞的那次发版列了 7 条公告,两天后逐条查全局公告库全是 404,npm audit 报 0 漏洞。 - [GitDiagram 免 key,但 17 条连线 4 条查不到](https://liaolongdong.github.io/better-blog/2026/10/01/gitdiagram-keyless-mcp-4-bad-edges.html):一次 POST 不用鉴权就回一张 mermaid 图,MCP 那次 12029 毫秒、冷启动 23 秒;代价是它画的 17 条文件之间的线,逐条查 import 有 4 条查不到,看图可以,别抄它画的线。 - [Univer 在 Node 里算公式,但默认表只有 1000 行](https://liaolongdong.github.io/better-blog/2026/09/30/univer-node-two-gaps.html):SUM 和 SUMIFS 在没有 document 的进程里真回了数值,启动 41.2 毫秒;但默认表只有 1000 行 20 列,越界在构造时就抛 Range is out of bounds,而装进来的 24 个包没一个声明 engines,连个警告都不吐。 - [livenerf 的 30 天基线跑到第 6 天,它的锁校验是红的](https://liaolongdong.github.io/better-blog/2026/09/30/livenerf-panel-lock-mismatch.html):它招牌上那个 7.51 点我能从仓库两个文件重算,它声称的 6 天日更一条都看不到:锁校验三条全红,ci.yml 三步没有一步碰锁,日更状态那个目录还被 ignore。 - [WebMCP 只剩 document.modelContext 这个挂载点](https://liaolongdong.github.io/better-blog/2026/09/29/webmcp-modelcontext-mount.html):navigator 上那两个名字从来不在标准里,实现方自己也把它们撤了:草案纯文本里 modelContext 出现 25 次、另两个名字 0 次,挂载点只剩 document.modelContext 一处,页面里那句回落判断该删。 - [scriptc 把 TS 编成 72KB 原生二进制,Intel Mac 少一个包](https://liaolongdong.github.io/better-blog/2026/09/29/scriptc-native-x64-gap.html):72,016 字节的产物、冷启动 11.6 毫秒对 `node hello.js` 的 141.3 毫秒,这条不装运行时的路是真走通了;但 `@scriptc/runtime-darwin-x64` 被钉在 0.1.7 而 npm 上只发到 0.1.0,Intel Mac 装完本地只剩三个目录。 - [OpenAI 的训练沙箱被一次 DNS 查询打穿](https://liaolongdong.github.io/better-blog/2026/09/27/openai-dns-agent-pause.html):出口管住了、解析器没管住:一个跑搜索类训练的 agent 把问题塞进查询名,借沙箱自己的递归解析器问到了别家的聊天机器人,代价是带工具推理整条暂停,而报告里那个 15 分钟只算这一次。 - [Bend 2 实测:68 行声明配 484 行证明](https://liaolongdong.github.io/better-blog/2026/09/27/bend-laws-proof-gaps.html):68 行声明配 484 行证明:改坏一行,解释器照样 exit=0 吐乱序数组,`bend PROOF.bend` 才红。但门自己也漏——3 个依赖 `@unsafe` 的定义仍回退出码 0,项目把它写进 `WONTFIX.txt`。 - [界面一校验就没了?json-render 用 19 条规则想终结它,但漏了一层](https://liaolongdong.github.io/better-blog/2026/09/26/json-render-silent-strip.html):342 字节进去、138 字节出来,中间只过了一行 `catalog.validate()`,`success` 仍是 true:被 zod 默认 strip 掉的,正是 prompt 里那条 CRITICAL 教模型写在元素层的 `on`。 - [别再问 Actions 的失败数怎么数了,2500 是哨兵不是答案](https://liaolongdong.github.io/better-blog/2026/09/26/github-actions-2500-cap.html):接口交回来的是整数 2500 而不是带加号的写法,也没有截断标记;最多取得到 1000 条,分页头的 rel 还按 2500 指路,照它写循环的脚本会一声不响连吃 15 个空页。 - [🚨 别再死磕 CLAUDE.md 了!AGENTS.md 那扇门是远程装的](https://liaolongdong.github.io/better-blog/2026/09/25/claude-agents-md-remote-gate.html):AGENTS.md 读不读得动,本地文件说了不算:那道远端 flag 默认是 false,关掉遥测的机器第一个会话只负责把 flag 取回来、第二个会话才生效;官方说 v2.1.281 修了,那 176 条发布说明里 AGENTS.md 命中 0 次。 - [谷歌开源的 ax:三样预装两样空,这才是真正的 v1alpha1](https://liaolongdong.github.io/better-blog/2026/09/24/google-ax-workspace-materialization.html):`Workspace` 声明预装三样,真装上的只有 Git:MCP 在 628 个提交里最远只走到 CLI 的表头,skill 只被 `os.MkdirAll` 建出一个空目录,而且 clone 五次全失败照样把 ready 写成 True。 - [谁才是省上下文冠军?2026年9月4条浏览器入口实测排名出炉,结果让人意外](https://liaolongdong.github.io/better-blog/2026/09/23/browser-skill-context-bytes.html):省上下文跟功能摆在哪没关系,只看 agent 开机读哪一份:BrowserSkill 常驻 6,804 字节,背后 42 个方法和 56,289 字节参数表一条都不进上下文;同一套 MCP 工具两个版本之间就涨了 2,505 字节。 - [同一站点的账号该出现在哪些子域:跨子域名匹配三档的实现与踩坑](https://liaolongdong.github.io/better-blog/2026/09/22/cross-subdomain-matching.html):三档放宽里最险的不是漏匹配而是收错站:`evil-qq.com` 也以 `qq.com` 结尾,所以判据只能落在主域名相等;最阴的坑是 Chrome 把 `*` 解析成 `%2A`,单测全绿、真机一个字符都没放宽。 - [我把 Anthropic 的金融插件仓库读了一遍,发现回滚漏掉了 1 行](https://liaolongdong.github.io/better-blog/2026/09/22/claude-advisor-readme-row.html):一次仓库级回滚砍了三刀,README 表格第 113 行还站着;同仓库另一头 2 个字符的 JSON 语法错在 main 上待了 116 天,为它开过的 19 个 PR 一个没合,`claude plugin validate --strict` 照样 exit=0。 - [18,757 Star 的 Cloudflare 安全审计 skill 来了——16 条探针戳它的两个校验器](https://liaolongdong.github.io/better-blog/2026/09/21/security-audit-two-validators.html):六阶段那套在本机跑不动,只拎出仓库自带的两个 validator 跑:65 个测试全绿,可 `line` 填 1e21 也过、两道绿灯之间没人对账——它查的是 JSON 格式,不是证据真不真。 - [36K Star 的仓库自己先翻车!pnpm 的「并发组」来了——7 个版本挨个跑](https://liaolongdong.github.io/better-blog/2026/09/21/pnpm-task-settings.html):坑不在升级的人身上:pnpm 读 pnpm-workspace.yaml 排在切版本之前,于是 11.25.0 连 `pnpm --version` 都能 exit=1,packageManager 那一行救不了你,升到 11.27.1 才放行。 - [三家并行工作区翻车了:唯一装上的那家,0.213 秒就把我拒了](https://liaolongdong.github.io/better-blog/2026/09/21/one-worktree-per-agent.html):三家卖一个 agent 一个工作区的,并行一家都没测成,最诚实的是 worktrunk:0.213 秒一句人话把我挡在 git 2.43 门外,还把每棵工作树多一整份代码明写在 FAQ 里。 - [一个 API key 都不配就能看卫星图?gods-eye-view 用 13 条免密路径彻底终结这个问题](https://liaolongdong.github.io/better-blog/2026/09/17/gods-eye-view-keyless.html):一个 key 都没配就把 21 个图层画上屏、console 零错误,README 那句 13 条免密路径逐行对账成立;真正卡住安装的反而是 puppeteer 那 170MB 的 Chrome 下载。 - [我把 37 个 SKILL.md 挨个数了一遍,发现 14 个不会被自动加载](https://liaolongdong.github.io/better-blog/2026/09/12/trending-skill-sweep.html):装完插件看到 25 个 skill,模型能主动看见的只有 11 个:14 个标了 disable-model-invocation 的不会自动加载,得逐个数 frontmatter,光读 plugin.json 看不出这个数。 - [谁才是 9 月最不动声色的改动?三桩实测排完,第一名是我自己](https://liaolongdong.github.io/better-blog/2026/09/10/silent-defaults.html):DeepSeek 换了模型路由、Tailwind 关了注册门,至少都自己发了公告;只有 miniflare 的 latest 静默指向 alpha,全程零警告——有 lockfile 躲得过,npm i -D wrangler 的人没有选择权。 - [别再问我 Next 该升到哪版:16.3.3 关掉 AVIF,6 天 3 小时后 16.3.4 又打开](https://liaolongdong.github.io/better-blog/2026/09/10/nextjs-avif-trap.html):想知道 AVIF 到底有没有在跑,别再看 Next 的版本号。16 线只在 package.json 把 sharp 下限抬到 0.35.4,15 线改成运行时读 libheif 版本,低于 1.23.2 那道门就是关着的。 - [🚨 别再死磕 AI 自动出图了!我这周试了 4 个项目,2 个卡在半路](https://liaolongdong.github.io/better-blog/2026/09/10/agent-visual-toolchain.html):这周试的 4 个出图项目,两个卡在磁盘和网络上,最后跑通的是只带一个 CLI 的 chrome-devtools-mcp——archify 品牌表里 0 个构建工具,HyperFrames 装完 374MB 后 init 还自己去 GitHub 重 clone 整仓。 - [四个新功能,四段实现笔记:右键填充、全站搜索、快速添加与只读详情](https://liaolongdong.github.io/better-blog/2026/09/05/login-flow-details.html):四个新功能零新增开关,权限只多了 contextMenus:右键点的是哪个输入框 Chrome 不返回,元素处于隐藏状态时 offsetHeight 恒为 0,得先置可见再定位才量得到高度。 - [用 Web Crypto 实现密码管理器级加密:PBKDF2 60 万次迭代 + AES-256-GCM 实战](https://liaolongdong.github.io/better-blog/2026/08/28/webcrypto-encryption-in-practice.html):浏览器扩展做加密可以不引任何库:crypto.subtle 用 PBKDF2-SHA256 跑 60 万次迭代派密钥,字段级 AES-256-GCM 落盘,锁定会话立刻清空密钥句柄,审计面缩到一只手数得完。 - [让 Chrome 侧边栏 1 秒内打开:MV3 Service Worker 保活与预热实战](https://liaolongdong.github.io/better-blog/2026/08/28/mv3-sidepanel-sub-second-open.html):侧边栏白屏不是一个 bug 而是四段成本:SW 冷启动、资源冷读盘、数据要解密、CSS 阻塞渲染。保活、预热、竞速、非阻塞 CSS 各买回一层,实测缓存快路径 20-50ms 拿到数据。 - [零云端、开源、为开发者而生:我从零做了一款浏览器密码管理器](https://liaolongdong.github.io/better-blog/2026/08/28/local-first-password-manager.html):它补的是 Bitwarden 们留的缝:host 全等才出账号、一个快捷键一路填到点登录、数据物理上不出浏览器。代价也明说:主密码遗忘找不回,别在里面存银行和支付类凭证。 - [用 AI 写的前端页面总是"一眼 AI 味"?Impeccable 用 46 条规则彻底终结这个问题](https://liaolongdong.github.io/better-blog/2026/07/12/impeccable-ai-design.html):不教 AI 什么是好设计,而是用 46 条确定性规则禁掉紫蓝渐变、Inter 字体、卡片套卡片、bounce 缓动这些训练数据的公约数;检测器不要 API Key,也能脱离 AI 当设计 lint 用。 - [Meta 开源了 Astryx:一个同时为人类开发者和 AI Agent 设计的 React UI 系统](https://liaolongdong.github.io/better-blog/2026/07/12/facebook-astryx.html):首个明说同时为人类开发者和 AI 助手设计的 React 设计系统:prop 命名守统一词汇表,复合组件走 Compound 导出,还给 AI 配了查询用的 CLI;150+ 组件、StyleX 零运行时,但仍在 Beta。 - [阿里开源的 Page Agent:一行代码让网页"听懂人话",这才是真正的前端 AI 交互](https://liaolongdong.github.io/better-blog/2026/07/12/alibaba-page-agent.html):把页面 DOM 脱水成文本交给大模型,全程跑在浏览器端,不要 Python 后端也不用截图;代价是只能操作当前页、跨域 iframe 仍受限,它做的是产品内交互而非 E2E 测试。 - [别再手输账号密码了:我开发了一个一键自动登录的插件](https://liaolongdong.github.io/better-blog/2026/06/28/account-password-helper-new.html):账号密码管理助手把多环境、多角色的账号加密存在本机,登录页选一个账号就能一键填充并自动登录;任何凭据都不上传。 - [🚨 别再死磕 Puppeteer 了!Chrome 祭出“王炸”新 API,前端自动化面临彻底洗牌!](https://liaolongdong.github.io/better-blog/2026/06/15/webmcp-vs-puppeteer.html):WebMCP 是页面主动暴露给 AI Agent 的工具契约,不是 Puppeteer 的替代品;目前只在 Chromium 实验特性里,生产环境先做渐进接入。 - [被 217K Star 疯狂追捧!AI 编程的「规范革命」来了——SDD 四大流派深度拆解](https://liaolongdong.github.io/better-blog/2026/06/06/ai-sdd-github.html):数据全部抓自 2026 年 6 月的 GitHub 仓库:217K 星的 Superpowers 在 5.1.0 删掉三个斜杠命令、把审查压到约 30 秒,108K 星的 Spec Kit 终于支持原地自升级,上手时间与 Token 消耗也一并列了对照。 - [2026 年 AI 编程工程化指南:用 Spec 让 Agent 不再"飘"](https://liaolongdong.github.io/better-blog/2026/06/05/ai-sdd.html):四个框架分工明确:单人长任务交给 Superpowers,新项目上 Spec Kit,老代码改造用 OpenSpec,要 IDE 级强制审批才换 Kiro;四者不互斥,spec 文件结构高度相似,可以混搭。 - [谁才是最强大脑?2026年5月全球AI大模型实测排名出炉,结果让人意外](https://liaolongdong.github.io/better-blog/2026/05/31/AI-model-rating.html):同一个五月三家平台各认一个第一,SuperCLUE 给 Gemini 3.1 Pro,Artificial Analysis 与 LMArena 都指向 Claude;分歧出在评测维度而不是数据,先定场景再挑模型比争排名有用。 - [2026年5月最新AI大模型排行榜:国产模型集体突围,谁才是真正的王者?](https://liaolongdong.github.io/better-blog/2026/05/30/AI-model-rating.html):这一期海外模型仍占综合前四,国产稳在第 5 到 10 名、与榜首差 5 分内,数学推理还被国产拿下单项第一;六个维度要拆开看,别只盯总分。 - [告别复制粘贴!这款本地账号密码管理插件,让多账号切换效率翻倍](https://liaolongdong.github.io/better-blog/2026/05/25/account-password-helper.html):多环境频繁切账号的场景里,它把凭据全留在浏览器本地:敏感字段走 PBKDF2 一万次迭代加 AES-256-CBC,主密码只输一次,会话期内填充免验证,零网络传输。 - [如何优雅的实现一套前端项目环境无缝切换多套后端环境](https://liaolongdong.github.io/better-blog/2024/10/08/fe-env-switch.html):接口前缀不用每次改 proxy 配置再重启:axios 的 baseURL 运行时读 localStorage 里的 currentEnv,页面 shift 加双击选环境刷新即换,重编译等待从几分钟降到一两秒。 - [vue2不维护了,新项目或者改版重构的项目继续使用vue2会有什么问题?](https://liaolongdong.github.io/better-blog/2024/03/20/new-project-use-vue2-problem.html):2023 年 12 月 31 日停止支持后不再有新增功能和补丁,新建或改版重构一律直接上 Vue 3;只有对未维护软件有合规性、安全性硬要求时,才需要去看 HeroDevs 的无限期支持。 - [超好用的 chrome 浏览器插件推荐(外语阅读困难者福音)](https://liaolongdong.github.io/better-blog/2024/01/05/chrome-plugin-recommend.html):外语阅读先装沉浸式翻译,双语对照、PDF 与 Epub 都能翻,免费版够用;一个 FeHelper 顶掉 JSON 格式化比对与编解码那堆小工具,商店下载要科学上网,谷歌翻译也可能需要。 - [2023年都结束了,你还不知道新增了哪些JS特性?](https://liaolongdong.github.io/better-blog/2023/12/29/2023-js-new-features.html):ECMAScript 第 14 版里真正改变写法的就是那两个 groupBy:键能用字符串表示选 Object.groupBy,要拿对象当键才换 Map.groupBy,两个都不做深拷贝。 - [git之reset和revert详解](https://liaolongdong.github.io/better-blog/2023/12/24/git-revert-reset.html):选哪个只看一条:分支有没有别人在用。自己的 feature 分支随便 reset,共享分支只能用 revert 生成反向提交;万一 --hard 手滑,git reflog 的记录默认只留 90 天。 - [npm、yarn和pnpm包管理工具详解](https://liaolongdong.github.io/better-blog/2023/06/14/npm-yarn-pnpm.html):命令表翻一遍就够,真正的分水岭在磁盘:pnpm 靠 node_modules/.pnpm 里的符号链接共享依赖,省下空间也换来三个新坑——版本冲突、外部干扰、链接失效。 - [前端项目版本投产实现浏览器自动刷新更新版本内容](https://liaolongdong.github.io/better-blog/2023/06/11/auto-update-release.html):不要后端配合的版本自动更新做法:node 脚本把 commitId 写成 gitInfo.json 放进 public 目录,页面靠 visibilitychange 切回来时对比版本号,不一致就 location.reload;代价只是切标签多发一次请求,而那文件只有 500 字节左右。注意脚本产出的文件不能放 dist,打包时会被清空。 - [JS实现常见的十大排序算法](https://liaolongdong.github.io/better-blog/2023/06/08/common-sort-algorithm.html):十大排序每种都给一版朴素实现加一版优化实现,最实用的是文末那张平均、最好、最差时间复杂度加空间和稳定性的汇总表;快排最差退化到 O(n^2) 且不稳定,归并稳定但要 O(n) 额外空间。最后一节只甩了 Array.sort 的 MDN 链接,没讲它底层到底怎么排。 - [前端开发应该掌握的查找算法](https://liaolongdong.github.io/better-blog/2023/06/07/common-search-algorithm.html):六种查找都按原理、能跑的 JS、使用场景三段排开,复杂度写得清楚:二分 O(log n) 但要求数据有序,插值平均 O(log log n)、分布不均会退化到 O(n),哈希版还提醒重复值会取最后一个索引;AVL、红黑树、B 树那节的结论是实现复杂、工作里基本用不到,了解即可。 - [Vue3 + Vite 项目研究与对比](https://liaolongdong.github.io/better-blog/2023/05/08/vue3-vite-study.html):两张对照表把 Vue3 与 Vue2、Vite 与 webpack 的差异摆平:响应式从 Object.defineProperty() 换成 Proxy,Vue3 能摇掉整个未使用的库但不再兼容 IE11,Vite 快在开发环境和产物体积、代价是插件生态有限且只支持现代浏览器;全文没有代码也没有实测数据,当选型速查表够用,当迁移依据不够。 - [JS函数式编程的应用](https://liaolongdong.github.io/better-blog/2023/04/30/functional-programming.html):概念和代码能对上,深度停在入门:高阶函数、纯函数、柯里化、函数组合、惰性求值、尾递归每项都有能跑的示例,curriedAdd 四种传参写法都出 6,尾递归阶乘靠 accumulator 传中间结果;范式对比和优缺点那两段偏罗列,最值得抄的是纯函数与非纯函数那段对照代码。 - [JS中面向切面编程(AOP)应用](https://liaolongdong.github.io/better-blog/2023/04/12/aop-programming.html):AOP 在 JS 里的三级跳:先用 withLogging 高阶函数包一层,再把 before 和 after 挂到 Function.prototype 上链式调用,最后上装饰器 @log 改 descriptor.value;只是装饰器那版得靠 Babel 或 TypeScript 编译,类装饰器当时还停在第 3 阶段提案,直接扔进浏览器跑不起来。 - [nginx配置详解](https://liaolongdong.github.io/better-blog/2023/04/12/nginx-config-explain.html):从 nginx -s 那几个信号的区别,到 location 五种匹配的优先级、root 与 alias 的路径拼接差异,再到 proxy、upstream、rewrite、gzip、geo 逐块给配置和注释,是抄配置用的字典而不是教程;记一条就够:alias 的路径末尾不补斜杠就可能 404。 - [常见的算法题](https://liaolongdong.github.io/better-blog/2023/02/25/common-arithmetic.html):四种排序、二叉树与多叉树遍历、字符串与栈的题、两数之和三数之和一直到洗牌算法,每题都是能跑的 JS 并标了示例输出,比如 abbaca 删完相邻重复项剩 ca、abcabcabcbbccccc 里 c 出现 8 次;题目偏旧,抄去面试前先自己跑一遍。 - [webpack 打包项目迁移到 Vite 的实践记录](https://liaolongdong.github.io/better-blog/2022/08/08/webpack-move-vite.html):迁移动机写得很实在:开发服务器冷启动要 5~6 分钟,改一个文件等几秒才反映到浏览器;换 Vite 后是几十秒甚至几秒。但全文只讲为什么迁和定什么目标,配置怎么改、踩了什么坑一行都没写,当立项说明看可以,当迁移指南看会落空。 - [vue-router源码解析](https://liaolongdong.github.io/better-blog/2021/03/23/vue-router-analysis.html):history 模式地址里没有井号,刷新照样向服务器发请求,匹配不到就 404,得让服务端兜底返回同一个 index.html;至于 this.$router 和 this.$route,都是 install.js 里 Object.defineProperty 挂的代理。 - [linux常用命令](https://liaolongdong.github.io/better-blog/2021/03/23/linux-common-command.html):几组最容易混的:grep 搜文件内容、find 搜文件系统,tar 只打包不压缩,which 只给可执行文件路径、whereis 连帮助文档和源码一起给,每条命令都带语法和注意事项。 - [H5实现打开导航地图app并自动导航到目的地](https://liaolongdong.github.io/better-blog/2020/10/25/h5-open-map-position.html):前端 JS 判断不出手机装没装地图 App,只能列出高德、百度、腾讯三家再配一句点击无响应的提示;百度直接吃 bd09ll 坐标,高德和腾讯要先用 gcoord 把 BD09 转成 GCJ02。 - [H5实现类似微信可拖拽左右吸边浮动按钮](https://liaolongdong.github.io/better-blog/2020/10/20/like-wx-draggable-float-btn.html):左右吸边的悬浮按钮不难做,坑都在边界:初始定位值得是原定位样式值的倍数,否则第一次拖拽就错位;松手时再拿 x 与视口宽度的一半比大小。 - [一句话理解原型和原型链](https://liaolongdong.github.io/better-blog/2020/08/03/inaword-understand-prototype.html):实例对象的 __proto__ 指向构造函数的 prototype,函数自己也是对象所以两个属性都有;原型链一路查到 Object.prototype 的 __proto__ 为 null,还没命中就返回 undefined,用实例覆盖 Child.prototype 后得手动补 constructor。 - [浏览器缓存机制](https://liaolongdong.github.io/better-blog/2020/04/08/browser-cache.html):整套机制只看两组头字段,Cache-Control 或 Expires 决定要不要发请求,max-age=600 就是 600 秒内直接用本地文件;过期之后才轮到 Last-Modified 和 ETag 说话,两个同时用时满足其一就算没更新。 - [vscode编辑器常用插件汇总](https://liaolongdong.github.io/better-blog/2019/09/23/vscode-useful-plugins.html):二十五个插件每个只配一句用途说明,没有配置项也没有截图,真正值钱的是文末三句:装完插件必须关掉 vscode 重新打开才生效,koroFileHeader 和 vscode-fileheader 快捷键冲突不能共用,其余用法得翻各自插件的说明。 - [JavaScript常用设计模式总结](https://liaolongdong.github.io/better-blog/2019/07/26/javascript-design-pattern.html):《JavaScript 设计模式与开发实践》的整本笔记,15 种模式都按「先摆裸实现或一坨 if,再给重构版」的路子写,配的是登录浮窗、图片预加载、年终奖计算这类能落地的例子;当入门读物太厚,当查某个模式怎么写的代码手册正合适。 - [H5页面实现摇一摇功能](https://liaolongdong.github.io/better-blog/2019/07/10/h5-shake-function.html):微信摇一摇领红包的落地记录:devicemotion 取三轴加速度算变化率,阈值 SHAKETHRESHOLD 写死 4000 就判定摇晃;真正的坑是协议和平台——iOS 12 以上非 https 域名整个事件失效,安卓不受影响,navigator.vibrate 在 iOS 浏览器根本不支持。 - [前端面试常见编程题汇总](https://liaolongdong.github.io/better-blog/2019/03/20/interview-programme-summarize.html):一题一段带实际输出的手写题合集,出处直接写在小标题上(阿里、美团、字节、快手、携程、腾讯文档);防抖节流各两版、sleep 给了 promise、async/await、generator 三版,抄代码之前先对着注释里的 console 输出跑一遍。 - [几种常见的排序算法](https://liaolongdong.github.io/better-blog/2019/03/06/common-sort-arithmetic.html):四种排序各配一段能跑的 JS 和逐行注释:冒泡是稳定排序、选择排序不稳定,快速排序给了 splice 取分界值和 ES6 filter 两种写法;值得记的是循环边界——外层只写到 len - 1,最后一轮没必要再比。 - [移动端调试技巧总结](https://liaolongdong.github.io/better-blog/2019/03/04/mobile-debug-summary.html):PC 浏览器替代不了真机:iOS 用数据线连 Mac 走 Safari 的开发菜单,安卓开 usb 调试后在电脑 Chrome 的 inspect 面板挂载,页面上看不到日志就引 vConsole,微信内的缓存走 debugx5 那个页面清。 - [前端那些你不知道的小技巧(CSS篇)](https://liaolongdong.github.io/better-blog/2019/02/26/you-dont-kown-css-tips.html):伪元素挂不上 img 和 br 这类单闭合标签,inline-block 之间那道缝来自连续空白符、父级字号设成 0 就能压掉,列表首尾的边框交给 not() 或兄弟选择符一次写完。 - [前端那些你不知道的小技巧(JS篇)](https://liaolongdong.github.io/better-blog/2019/02/25/you-dont-kown-js-tips.html):一行流里最该记住的三条边界:类型判断只有 Object.prototype.toString.call 够用,JSON 那招深拷贝会吞掉 undefined、symbol 和函数并把 Date 变成字符串,扩展运算符转不了不可迭代的类数组对象。 - [使用gulp搭建多页面项目](https://liaolongdong.github.io/better-blog/2019/01/28/use-gulp-build-project.html):大多数项目仍用 webpack,但独立于项目之外的活动页更适合 gulp:根目录一个 gulpfile.js,敲 gulp 就走 default 任务,src、dest、task、watch 四个 API 就够用。报 Task function must be specified 是版本不一致。 - [使用verdaccio搭建npm私有仓库](https://liaolongdong.github.io/better-blog/2019/01/24/build-private-package.html):nexus 偏后台、cnpm 要装 MySQL、sinopia 三四年没人维护,所以选 verdaccio:一条 npm 命令装完、免数据库。搭好之后还有两道门,config.yaml 里加 listen 和云服务器开放 4873 端口的安全组。 - [如何开发一个npm包并发布到npm中央仓库](https://liaolongdong.github.io/better-blog/2019/01/24/publish-public-npm.html):发布就三步:npm adduser 登录、package.json 里定好不能重名的 name 和 version、npm publish。卡住基本是三种报错,registry 还指着淘宝镜像、账号没登录、版本号没改。 - [网站SEO搜索引擎优化](https://liaolongdong.github.io/better-blog/2019/01/17/website-seo.html):页面标签写得再齐也只是底子,收录靠主动出击:站长平台验证站点、装自动推送脚本、根目录放站点地图,提交完还得等一小时才开始处理。 - [echarts折线图、饼状图、圆环图使用总结](https://liaolongdong.github.io/better-blog/2019/01/01/echarts-use-summarize.html):官方 demo 没写的三个坑各有配置项:折线图四周空白靠 grid 的 x、y、x2、y2 收窄,圆环图中心加水印用 graphic 的 text 元素,饼图标签重叠则动 minAngle、引导线长度和 formatter 换行。 - [使用原生JS实现QQ好友、QQ空间、新浪微博、腾讯微博分享功能](https://liaolongdong.github.io/better-blog/2018/12/25/qqweiboshare.html):四个分享口子全是拼链接开新窗口,不引 SDK;图片参数新浪和腾讯微博收 pic,QQ 好友和 QQ 空间收 pics,QQ 空间的标题填在 summary 里,缩略图不能用本地图,七牛 CDN 的图不显示。 - [git管理项目关联多个远程仓库(github、coding)](https://liaolongdong.github.io/better-blog/2018/12/05/move-githubblog-to-coding.html):一个仓库挂两个远程靠 git remote add 起别名,clone 下 coding 仓库再把 github 加成第二个远程;两边历史不相干,pull 时得加允许合并无关历史的选项,之后改一次代码分两次推。 - [使用react+next实现服务端渲染](https://liaolongdong.github.io/better-blog/2018/11/25/react-next-ssr.html):路由覆盖用了 as 之后刷新就 404,因为浏览器走客户端路由、服务器只认 href,得在 express 里补一条路由解析;getInitialProps 首屏只在服务端跑一次,返回值必须是普通对象。 - [阿里云服务器部署nginx以及配置https](https://liaolongdong.github.io/better-blog/2018/11/16/alicloud-nginx.html):装 nginx 前先把 CentOS 升一遍,但 update 连内核和系统设置一起改,upgrade 不动内核;改默认端口要补安全组再 nginx -s reload,https 只配证书与私钥两个字段,换完还得补 301 带权重。 - [阿里云服务器上部署node+mongodb](https://liaolongdong.github.io/better-blog/2018/11/01/alicloud-node-mongodb.html):一台 1 核 1 GB 的 CentOS 7.4,node 和 mongodb 全程源码编译:买机器时登录密码与远程连接密码不是同一个,端口不配安全组一律访问不通,mongod 数据目录靠 --dbpath 指。 - [前端学习资料](https://liaolongdong.github.io/better-blog/2018/10/25/study-materials.html):2018 年攒的方向索引,JS、CSS、Vue、Node、React、服务端渲染各贴几条链接;node 文档停在 v6.5.0 和 v4.2.4,vue 链接指向 v2 手册,今天只适合当找资料的入口,别指望链接内容还对口。 - [搜狗输入法黑科技](https://liaolongdong.github.io/better-blog/2018/10/12/souguo-input-blacktech.html):生僻字不会读也能打出来:搜狗输入法里先打 u,再把汉字拆成部件按读音连着拼,u 后面接 haohushi 三段就出「饕」;全部内容只有这一个例子和两张截图,学会这一招够用,别当教程看。 - [微信分享到微信好友、朋友圈、QQ好友、QQ空间总结以及常见问题汇总](https://liaolongdong.github.io/better-blog/2018/06/06/wxshare-summarize.html):一份标题链接的参数喂给四个分享接口,签名在 wx.config 注入,调用放进 ready;Android 微信不认 pushState 会签名失败,链接不带协议也分享不成功,分享接口要企业主体认证才有。 - [总结前端工作当中遇到的那些坑](https://liaolongdong.github.io/better-blog/2018/03/26/work-summarize.html):坑按微信、事件、兼容、样式四堆分好,值钱的全在细节里。iOS Safari 认不了带横杠又带时间的日期串,事件委托得换个父节点,升级 Node 后 gulp 崩掉装一个 graceful-fs 就好。 - [微信内部浏览器H5支付(JSAPI支付)和微信外部浏览器H5支付总结](https://liaolongdong.github.io/better-blog/2017/09/09/wxpay.html):微信内调起支付有两条路,内置对象 WeixinJSBridge 直接 invoke,或者用 JS-SDK 的 chooseWXPay;微信外只能跳 mweb_url,而它放进 APP 内嵌的 H5 时回跳早于支付完成,只能靠订单号轮询兜底。 - [前端开发中经常使用到的公用方法](https://liaolongdong.github.io/better-blog/2017/08/25/common-tools.html):手机号和银行卡号每四位一分组,用的是 replace 配正则,不是往数组里插字符;对象数组去重不能交给 new Set,UA 判断里 MicroMessenger 还得抢在 iPhone 前面。 - [git常用命令操作手册](https://liaolongdong.github.io/better-blog/2017/06/06/git-common-command.html):git 的救急顺序其实很短。reset --hard 把提交回丢了先翻 reflog,最近 90 天的操作记录都在里面;要撤掉已经推到远程的那次提交,用 revert 补一条新提交,别去改历史。 - [JavaScript语言精粹学习笔记](https://liaolongdong.github.io/better-blog/2016/08/28/JS-good-parts.html):《JavaScript 语言精粹》八章的逐章笔记,每条结论后面都挂着能跑的代码和打印结果,从对象按引用传递一路记到 JSON 会丢掉函数和 undefined。 - [Hello Jekyll](https://liaolongdong.github.io/better-blog/2016/06/18/hello-jekyll.html):Jekyll 是个自带博客意识的静态站点生成器,模板目录里的纯文本过一道 Markdown 与 Liquid 渲染,吐出能直接发布的整站,GitHub Pages 的底层就是它。 ## 怎么引用这份内容 - 文章地址形如 `https://liaolongdong.github.io/better-blog/2026/09/21/.html`:年/月/日取自文章的 `date`,`` 取自文件名,发布后不再变动,可以长期引用。 - 文内的命令、配置与版本号都是作者本人环境实测,实测日期写在正文里;上游行为会变,引用时请连日期一起给出,不要只摘结论句。 - 需要结构化字段(标题、摘要、发布日、作者、分类)时,读同一 URL 的 JSON-LD(`BlogPosting` + `BreadcrumbList`),或直接读上面的 Atom 全文源。 - 本文件由站点构建自动生成、与站内内容同步,不存在需要人工同步的第二份清单。