呜啦!日常碎碎念,偶尔掉落优质前端博文推荐、学习资源等
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态

图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
#优质博文 #前端 #css #javascript #debug
What a diff'rence a semicolon makes

AI 摘要:本文通过作者在调试 JavaScript 代码时遇到的一个由分号 (semicolon) 缺失引发的 TypeError: console.log(...) is not a function 问题,强调了分号在 JS 语法中的关键作用。作者通过简短实例和社区讨论,剖析了分号自动插入机制导致的意外行为,并分享了这一微小失误引发长时间调试的经历,提醒开发者关注代码细节。

1. 问题背景与经历
• 作者在调试时随意插入了 console.log('here') 语句并未加分号,位置恰好出现在 IIFE(立即执行函数)之前。
• 缺少分号导致 JavaScript 引擎将后续的 function 代码当作 console.log 的参数,最终抛出 TypeError。

2. 原因分析
• StackOverflow 社区成员 Sebastian Simon 解释了该错误机制:没有分号时,代码被解析为 console.log()(function(){}),而 console.log() 的返回值是 undefined,无法作为函数调用。
• 提供了最小可复现实例代码来说明问题本质。

3. 社区互动与反思
• 在 Mastodon 社区,Andre 提醒作者 Chris Coyier 的 Web Development Merit Badges(网页开发徽章)。
• 作者幽默地调侃自己,为“因为一个字符小失误花了一小时调试”自豪地领取了徽章,凸显开发中对细节的重视与共鸣。


author Thomas Steiner What a diff'rence a semicolon makes
#Newsletter #前端 #新动态 #周刊更新
我做了!在大伙的撺掇下先做了周刊第 1 期发了再说!反正也是每周本来就有在做的,欢迎订阅看看反馈纠错~

FE Bits 前端周周谈 Vol.1|Hello World、TanStack DB 首个 Beta 版发布

PS:感觉 Quaily 确实挺棒的。等晚点公众号审核过了可以也同步 md 转公众号。
也欢迎用 Folo RSS 订阅

因为是第一期所以后面内容有点多,把上上周之类的事件也放进去了,下期就不会那么长了。
#优质博文 #独立开发 #全栈 #云平台 #成本优化
独立开发穷鬼套餐(Web实践篇)

AI 摘要:本文系统梳理了独立开发者在 Web 全栈开发过程中,如何以低成本(穷鬼套餐)快速启动和迭代产品。作者结合自身实战,详细分析了主流的技术栈(以 Next.js 为核心)、多种低成本云部署模式(如免费云平台、全栈 Cloudflare、自托管等),以及项目启动常见成本项(域名、邮件、支付等)的选择建议,旨在帮助新手独立开发者找到成本控制与效率兼顾、专注产品本身的最佳路径。

1. 最新技术栈的选择
• 推荐 Next.js 作为首选全栈开发框架,因其生态活跃、文档齐全、AI 代码生成友好。
• 详细列举配套库与工具(如 Drizzle ORM、Better Auth、Stripe、React Email、Tailwind CSS 等),并说明每类工具的优点与适用场景。
• 解释选择原则,强调“三方依赖的通用性”及“易于在不同平台部署”。

2. 明确你的需求和成本
• 强调“盈利/准备盈利”型项目需严肃对待成本预算。
• 简述独立开发三种低成本路径:A. 利用云平台免费额度(如 Supabase/Neon/Vercel 等),B. 全部服务基于 Cloudflare,C. 自托管(廉价 VPS + 开源 PaaS 平台)。
• 分析各模式优劣:云平台部署简单、运维压力小但成本不稳定;Cloudflare 适合高流量/无收入阶段;自托管自由度高但需解决运维/安全等问题。

3. 云平台方式
• 细分为“入门级完全免费组合”“面向小商业的稳定运营组合”,逐项对比主流云平台(Vercel、Railway、Fly.io)、数据库(Supabase、Neon、Upstash)、对象存储(Cloudflare R2)、邮件服务(Resend)等的免费额度与核心优缺点。
• 强调高流量/免费额度耗尽时,成本可能快速上涨,需要有盈利模式支撑。
• 建议新手优先选择云服务,节约运维精力,把重心放在产品与营销上。

4. 完全利用 Cloudflare 平台
• 总结 Cloudflare 作为一体化服务平台的优势(免费 CDN、极低成本、服务丰富),适用于“愿意折腾”及“高流量低收入”独立开发者。
• 介绍 Workers 计算、D1 数据库、KV 存储、R2 对象存储等服务的免费额度及场景限制。
• 结合实际项目案例,说明小型/海外流量项目长期运行的可行性。

5. 自托管部署
• 分析自托管的技术栈组合、支持工具(如 Dokploy、Coolify、Uptime Kuma、Umami、Unsend、n8n等),一并覆盖数据分析、监控、邮件、数据库等服务。
• 优点:极致成本控制与可控性,缺点:需自担安全、备份、扩容及持续运维压力。

6. 其它成本项
• 域名:推荐优先在 Cloudflare 购买,兼顾成本、速度、稳定性。
• 邮件服务:若依赖登录/营销可选择 Resend、plunk 或自托管方案(Unsend+AWS SES等)。
• 支付平台:建议优先 Stripe/Paddle,初期可探索 Creem.io 等新平台并分享认证/提现实战经验。

7. 最后
• 提醒“穷鬼套餐不等于无止境折腾”,独立开发应聚焦产品与市场验证,合理分配时间资源。
• 强推 NextDevKit 作为一键多平台部署利器,降低初学者技术门槛。
• 鼓励读者分享各自技术栈与实践经验,集思广益,持续优化开发与部署流程。


author Guangzheng Li 独立开发穷鬼套餐(Web实践篇)
#优质博文 #css #前端 #新特性
Making a Masonry Layout That Works Today | CSS-Tricks

AI 摘要:本文介绍了当前 CSS 渐进网格布局(Masonry Layout)的浏览器支持现状及其多种语法方案,并提出了一种通过简洁 JavaScript 实现兼容所有主流浏览器的马赛克布局方法。作者详细解释了实现原理、兼容图片和响应式布局的技巧,同时分享了相关工具库的使用方法,为 CSS Grid 用户提供了生产可用、灵活可控的 masonry 解决方案。

1. CSS Masonry 布局的社区动态与支持现状
• Masonry 布局的引入持续讨论中,语法有三种主要提案:display: masonry、grid-template-rows: masonry、item-pack: collapse
• 当前未达成统一标准,不同浏览器支持程度不一(如 Firefox、Chrome 正在分别测试不同语法)
2. JS Polyfill 实现 Masonry 兼容性
• 介绍如何检测浏览器是否原生支持 grid-template-rows: masonry
• 若未支持,则使用 Polyfill 方案,纯 JavaScript 实现 Masonry 效果(仅需约 66 行代码)
3. Masonry 实现原理详解
• 利用 CSS Grid 的特性,将 grid-auto-rows 设为 0,row-gap 设为 1px
• 通过 JS 获取每个网格项实际高度后,调整 grid-row-end,实现项自适应高度并“堆叠”
• 恢复正确的行间隔后,布局完成,兼容性强
4. 对图片和媒体的兼容处理
• 首次渲染时图片未加载完成会导致布局错乱,需监听图片/视频加载后再计算布局
• 提供相关 JS 辅助函数,确保所有媒体加载完毕再执行布局函数
5. 响应式自适配
• 使用 ResizeObserver 监听容器宽度变化,实现自适应响应式布局
6. 工具库与复用建议
• 推荐使用作者开源的 Splendid Labz 库快速集成 Masonry 布局及更多布局工具
• 提供 npm、CSS、JS 完整使用示例


author Zell Liew Making a Masonry Layout That Works Today | CSS-Tricks
#Newsletter #React #前端 #JavaScript #新动态
⚛️ React Status #438 — July 30, 2025

AI 摘要:本期 React Status 精选了 React 及其周边生态的最新动态,包括 TanStack DB 的首次 beta 发布、Reaper 死代码分析 SDK、新的 React Native 动画库 Reanimated 4 及多款工具库,还有 TypeScript、Parcel、Remix、Next.js 等重要更新。内容从核心库、开发工具到行业热点,全面展示了前端开发领域的创新趋势,尤其突出数据管理、性能优化、工程实践和 JavaScript 生态的多元演进。

1. 生态与社区动态
TanStack DB 首个 beta 版发布,为 TanStack Query 带来高效增量更新与乐观写入能力,实现在本地侧存储场景的差分数据流 (differential dataflow)。
The Useless useCallback:React 状态管理与性能相关实践讨论,分析 useCallback、useMemo 潜在问题,展望 React Compiler 与 useEffectEvent 等新工具的改善能力。
TypeScript 5.9 RC 发布,带来 import defer 和 --module node20 等新特性。
Stack Overflow 2025 调查显示 React 继续蝉联 “最受开发者渴望(most desired)” Web 技术头名,尽管 Svelte 更 “受人钦佩(admired)”
Parcel 深入支持 React Server Components,并解析 "use client" 等指令的实际作用机制。
React Native 下一个版本中引入预编译的 iOS 版本,RC3 阶段承诺将构建时间缩短 10 倍

2. 文章与深度实践
• 《Remix 3 和 React-中心架构的终结》 探索 React 未来架构趋势。
• 《Next.js 运行时密钥注入实战》 深入分析密钥管理在微服务和 SSR 场景下的重要性。
• 《将 JSX 改写为 Astro 的思考》 带来组件语法和工程结构的迁移经验。

3. 代码、工具与库
React Native Reanimated 4 正式带来类 CSS 动画与过渡体验到 React Native,兼具复杂能力与高性能。
Better Upload 支持各类 S3 兼容存储的极简文件上传,适配 Next.js、TanStack Start、Remix 和 Hono 等框架。
Rooks.js 8.4 提供接近 100 个自定义 hooks,涵盖在线状态、窗口大小、语音合成、键盘输入等各类场景。
• 新发布与更新工具还有 React Three Viverse 教程、Tinybase 6.5、TanStack Form 1.15、IntentUI 3.3、Preact 10.27、BlockNote 0.35、React-three-fiber 9.3、Ink 6.1 等,覆盖数据存储、表单、组件库、Notion 风格编辑器、命令行应用等多样领域。

4. JavaScript 生态其他重点
• JavaScript 各类运行时和引擎历史盘点。
• es-toolkit 成为 Lodash 100% 兼容替代,已被 Storybook、Recharts 等主流项目采用。
• Zod 对决 Valibot 的 JS/TS 校验器评测视频。
• Hugging Face Transformers.js 让机器学习模型直接运行于浏览器,并支持多种音频与文本模型。
Vercel 发布 Fluid compute 平台,该平台本质上提供 “无服务器服务器(serverless servers)”。
• Google OSS Rebuild 通过比对源码与上游,进一步保障开源生态(如 npm)安全。


author React Status 编辑团队 Stop Re-Rendering — TanStack DB, the Embedded Client Database for TanStack Query | TanStack Blog
#碎碎念 #新手办
新手办!这面雕,这大小,这居然是 129 的景品手办,太棒了吧🥰🥰
关于 TAITO 为什么是神!
还有爱酱居然是踩在星星上的!看商品图的时候没留意
#碎碎念 #猫
来点腊八丑照
工作累了就撸撸猫
刚睡醒就被逮着rua,狠狠rua!
#优质博文 #前端 #JavaScript #runtime #Node #跨平台 #全栈
史学家看过来!(很好的文章
The many, many, many JavaScript runtimes of the last decade

AI 摘要:过去十年,JavaScript(简称 JS)运行时(JavaScript Runtime)经历了爆炸性增长,跨越云、边缘(Eadge)、微控制器、智能电视、移动/桌面原生应用(Native App)等众多环境。随着 Node.js、Deno、Bun、Cloudflare Workers、Hermes、QuickJS 等不同引擎和运行时的出现,JS 开发者获得了前所未有的选择自由。文章系统梳理了驱动 JS 运行时百花齐放的原因:硬件性能多样化、任务场景多元化、与原生 API 的融合需求以及跨平台/多语言互操作等。最终结论是:没有哪一个 JS 运行时能“一统天下”,不同场景必然产生不同最优解,也促成了生态繁荣与技术创新的持续推进。

1. JavaScript 运行时的多样化浪潮
• 过去十年 JS 运行时和引擎在数量和类型上激增,支持从云、大型服务器到边缘、物联网和嵌入式设备。
• 没有单一运行时能覆盖所有场景,各种任务对性能、包体体积、API 支持等需求差异巨大。

2. 边缘计算(Edge Computing)和“无服务器”
• JavaScript 在边缘的脚步:先由 Node.js 在 AWS Lambda 支持,继而 Cloudflare Workers、Deno Deploy、Bun 等新锐项目快速跟进。
• 各家采用不同 JS 引擎:V8(Node.js、Cloudflare)、JavaScriptCore(Bun)、SpiderMonkey/WinterJS,QuickJS(LLRT)等,厂商和开发者根据实际需求选择最优方案。
• 行业逐步形成新的标准组织,如 WinterCG 推动运行时 API 一致性。

3. 微控制器与极小型设备
• 资源受限场景驱动极致“瘦身”引擎(如 Duktape、JerryScript、Espruino、mjs、Moddable、Elk)。
• 推动对应微型 runtime 出现(IoT.js、Microlattice.js、low.js)使 JS 覆盖从命令行到“3 分钱”MCU 芯片。
• 跨语言调用与嵌入需求促进微型 JS 引擎/运行时出现。

4. 多语言互操作(Polyglot engines)
• 不同语言实现 JS 引擎,促进零成本语言互调。显著例子有 Rhino/Nashorn/Graal.js(Java/JVM)、jint(.NET/C#)、langjs/pyNarcissus(Python)、Boa/rquickjs(Rust)、Kiesel(Zig)等。
• 甚至有用 JS 编写 JS 引擎的项目(如 Narcissus、Porffor、Shadow),展现 JS 生态和语言本身的强大适应性。
• 多数主流 polyglot 项目追求互操作性和练手,更极大丰富了 JS 生态。

5. 原生应用开发与 JS 运行时
• Web View 类应用:Cordova/PhoneGap、Ionic/Capacitor(移动端)、Electron、NW.js(桌面)、Smart TV 平台广泛采用 webview+JS runtime 构建跨平台 GUI。
• React Native 体系:通过 JS runtime+bridge 机制渲染原生组件,最早依赖 JavaScriptCore,后主推 Hermes,还支持 V8/QuickJS/Chakra 等多引擎适配;已成为移动端主流,正在攻入桌面和智能电视。
• NativeScript:深度绑定原生 API,早期支持多引擎(JSC/V8),后统一到 V8;近期演化为 Node-API 驱动,以便灵活适配各主流 JS 引擎。
• Node.js 在原生开发中的特殊地位:广泛用于 CLI 服务和桌面集成,但在 GUI、移动原生方面更显边缘,行业也频繁尝试 V8/ChakraCore/JerryScript 等不同引擎 port。

6. 总结与反思
• JS 凭借开放性和简洁性,成为最有适应性的面向 GUI 与原生应用开发的语言,并渗透到各类设备终端。
• 运行时选择众多,驱动力多样,硬件特性、启动时/运行时性能、bundle 大小、API 支持、native 调用等需求差异难以统一,任何“统一 JS 运行时”设想都难以落地。
• 健康竞争、百花齐放推动了巨大的技术进步,使 JS 成为未来开发“最安全”的通用技术选择之一。

7. 附录:遗漏与新兴运行时一览
• ByteDance Lynx/PrimJS、Ladybird LibWeb/LibJS、gjs(SpiderMonkey/ GNOME)、MuJS、JXA(macOS automation)、dukluv/txiki.js、Bare、lo.js 等新老项目列举。


author Jamie The many, many, many JavaScript runtimes of the last decade
#碎碎念 #猫
一不注意就猫占鱼巢了😡😡
可乐坏,这是我要躺的床!
#优质博文 #JavaScript #ES2021 #前端 #新特性
Logical assignment operators in JavaScript: small syntax, big wins

AI 摘要:本文介绍了 JavaScript 的逻辑赋值运算符(logical assignment operators),即 =, &&=, ??=,这些自 ES2021 起纳入标准的新语法极大简化了条件赋值的场景。这些运算符结合原有逻辑运算与赋值,帮助开发者更安全、高效地管理状态、赋默认值并减少样板代码,同时保留了短路(short-circuit)行为。作者详细对比了它们和传统写法的区别,以及在实际开发中的注意事项和最佳应用场景。

1. 逻辑赋值运算符基础
• 逻辑赋值运算符通过将逻辑运算符(||、&&、??)与赋值操作(=)结合,形成简写形式。
• 这些运算符延续了短路运算特性,仅在需要时才计算右侧表达式,提高性能并避免副作用。
• 非常适合简化日常中对变量赋默认值、状态更新的代码书写。

2. 三种主要运算及应用场景
逻辑或赋值(=):当左侧为假值(falsy)时赋值,用于没有初始化或需要提供默认值的场景,但会覆盖如 0、''、false 这类本应保留的有效值。
逻辑与赋值(&&=):当左侧为真值(truthy)时赋值,适合在当前条件满足基础上再作更新,注意右侧结果直接替换原值,可能变为假值。
空值合并赋值(??=):仅在左侧为 null 或 undefined 时赋值,更安全地保持如 0、''、false 这类需要保留的有效值,适用于需严格区分“未赋值”与“有效但为假”的情况。

3. 使用场景与注意事项
组件属性默认值(如 React 的 props):props.showHelpText ??= true;
全局状态或配置默认值:config.apiBase = '/api/v1';
数据清洗和表单处理:formData.username &&= formData.username.trim();
• 应避免使用可覆盖有效“假值”的 =,遇到需特殊区分空值的情况优先采用 ??=。
• 运算符左侧不能使用可选链(optional chaining),否则会抛出语法错误。
• 短路特性可避免无谓计算(如 API 密钥获取只在必要时执行)。

4. 浏览器与环境兼容性
• 支持:Chrome 85+、Firefox 79+、Safari 14+、Edge 85+、Node.js 15+
• 不支持:Internet Explorer
• 老旧环境可通过 @babel/preset-env(ES2021 配置)进行转译支持。

5. 实际意义与开发建议
• 逻辑赋值运算符虽然是小语法,但对代码可读性、简洁性以及防止常见赋值错误都极有帮助。
• 尤其适合前端组件状态管理、API 参数默认化、表单数据标准化等场景。
• 现已广泛兼容,开发者只需简单迁移习惯即可高效使用。


author Matt Smith
#优质博文 #CSS #TypeScript #前端 #类型安全 #工程化
The Multi-Repository TypeScript Problem

AI 摘要:本文深入探讨了在大型 TypeScript 项目、尤其是多团队、多仓库(polyrepo)架构下,如何在服务边界之间实现类型安全。作者通过剖析现有单仓库(monorepo)与多仓库在类型共享上的差异,提出了一套自动化提取、打包、共享和验证 TypeScript 类型定义的新思路,从而实现跨服务间类型兼容性检测,最大限度利用 TypeScript 本身的类型系统能力,实现 monorepo 式的类型安全体验。

1. TypeScript 项目架构对类型共享的影响
• 对比单仓库(monorepo)与多仓库(polyrepo)架构下服务间类型共享的简易性和复杂性
• 强调 monorepo 在类型共享上的先天优势,但多仓库在业务组织上的必要性

2. 跨仓库类型校验的实际挑战
• TypeScript 类型检查器需要获取完整工程上下文,但多仓库使类型定义分散
• 讨论依赖和类型递归拉取带来的复杂性,不同仓库可能存在同名、类似或依赖链深度不一的类型

3. 类型提取、打包和自动化流程
• 利用 ts-morph、SWC 等工具自动化精准地提取、分发类型定义
• 提出基于接口路由自动生成类型别名,解决多团队协作下类型命名不一致问题
• 持续集成(CI)流水线以独立项目方式聚合、校验和比对类型包,提高自动化校验覆盖面和准确率

4. 类型兼容与校验自动化策略
• 利用 TypeScript 类型赋值(assignability)规则进行自动验真,无需自定义冗余逻辑
• 构建临时 TypeScript 项目,自动加载各仓库导出的类型包,通过编译器 API 比对并提取错误
• 充分借力 TypeScript 编译器本身能力,让生态演进自然受益

5. 工程实践与系统扩展性
• 跨仓库类型校验架构具备良好的可扩展性和维护性
• 所有工程增强无需魔改 TypeScript,可高效适配未来升级


author Carrick The Multi-Repository TypeScript Problem
Back to Top