自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 收藏
  • 关注

原创 重磅!前端框架 styled-components 宣布停止维护,CSS-in-JS 时代终结?

styled-components 是 React 生态中最流行的 CSS-in-JS 库之一,自 2016 年推出以来,它让开发者可以直接在组件中编写 CSS,实现样式与组件的无缝集成。如 Remo Vetere 提到的 "next-yak" 就是一种可作为 styled-components 替代的开源方案:"它基本可以作为 styled-components 的直接替代品,而且是在构建时处理样式。技术更迭,初心不变,每一次"告别"都是下一次"你好"的开始。作为开发者,我们需要不断学习和适应。

2025-04-03 08:15:47 482

原创 Element Plus X 开源了,让 AI 组件开发不再头疼

这是一个专门为 AI 场景,基于 Vue 3 和 Element Plus 的企业级 AI 组件库设计的组件库。它最大的特点是:开箱即用,零配置集成。小编最近在寻找 AI 组件库时,发现了一个宝藏项目:Element Plus X。Element Plus X 的诞生,让 AI 组件开发变得更简单。组件文档:https://element-plus-x.com/components/typewriter/项目地址:https://github.com/HeJiaYue520/Element-Plus-X。

2025-03-28 07:44:14 580

原创 React 知名框架 CRA 正式被弃用:一个时代的终结

重磅消息!曾陪伴无数 React 开发者入门的 Create React App(CRA)框架,在 GitHub 最新提交的 PR #17003 中被官方正式标记为弃用。这意味着前端开发史上最具影响力的脚手架工具之一,即将退出历史舞台。一、弃用实锤:官方三重警告README 头号通牒项目首页新增醒目警告横幅,直言 "Create React App 已不再推荐用于生产环境"初始化劝阻机制执行 np...

2025-02-05 07:55:39 774

原创 2024 年 Node.js 大记事

现在是 2024 年 12 月 31 日,在即将过去的 2024 这一年 Node.js 发生了很多变化,这一年的 “Nodejs技术栈” 也记录了很多 Node.js 最新资讯,本文是对 2024 年 Node.js 的主要事件做一个回顾,欢迎评论区补充。同时也祝愿 2025 年的 Node.js 能再给我们带来更多有趣的内容!之前发过,参见2024 Node.js 大记事,很抱歉,笔者忘记了...

2024-12-31 20:13:57 1133

原创 2024 Node.js 大记事

2024 年 Node.js 发生了很多变化,这一年的 “Nodejs技术栈” 还是记录了很多 Node.js 的资讯,本文是对 2024 年 Node.js 的主要事件做一个回顾,欢迎评论区补充。同时也祝愿 2025 年的 Node.js 能再给我们带来更多有趣的内容!1. 首次拥有了新吉祥物大概在 2024 年 2 月份,Node.js 有了自己的新吉祥物 “火箭龟”2. 迎来了自己的新官网大...

2024-12-23 08:02:15 780

原创 谁说 JSON 不能有注释?

曾经是不是有人告诉过你:“JSON 不能有注释?”发现了一个有意思的网站,域名为 https://douglascrockfordisnotyourdad.technomancy.us/ 这个子域名所表达的意思是 “Douglas Crockford 不是你爸爸”,大概率是因为这个人曾说过 “JSON 不能有注释”,这个网站主要内容是在告诉你:“在 JSON 中使用注释没有什么问题,不要听从 Do...

2024-12-17 12:00:00 483

原创 写了个 Node.js 小专栏!

随着 Node.js 在服务端开发中的广泛应用,系统的稳定性与性能成为开发者必须关注的核心问题。内存管理作为影响系统性能的关键因素,尤为重要。Node.js 通过 V8 引擎实现了内存分配与垃圾回收机制,但即便如此,内存泄漏仍然是许多开发者在项目中遇到的常见难题。这个专栏是笔者在实际工作中的知识积累,之前也遇到了许多关于 Node.js 内存泄漏的实际案例。从刚开始的懵懂懵懂,到后来的一清二楚,笔...

2024-12-09 08:03:39 368

原创 npm 发布全新搜索体验:更透明、更客观,但真的更好用吗?

随着前端开发生态的不断进化,开发者对工具的需求也越来越精细化。作为世界上最大的 JavaScript 包管理平台,印象中 npm[1] 似乎很久没有大动作了!新的 NPM 搜索近期 npm 对其搜索功能进行了全面升级[2]。这次改版不再使用之前模糊的 “受欢迎度”、“质量”、“维护性” 等综合评分标准,而是引入了一系列可量化的新排序选项,包括关键词相关性、下载量、依赖数量和最近更新日期。新的搜索机...

2024-12-06 08:03:15 697

原创 避免内存泄漏最佳实践!

本篇是《破解 Node.js 性能瓶颈:深入解密内存管理与泄漏排查!》专栏的最后一篇,后续如果有合适的案例或内存泄漏排查工具相关的还会在该专栏下进行更新,如果你有什么感兴趣的或不太了解的,也可以在评论区留言,如果被采纳后也会以文章的形式发表在该专栏下。前面的章节中我们围绕内存管理的理论知识和案例实践两部分内容,进行展开讲解,写了有 9 篇文章,没看过的同学可以回顾下。《黄帝内经》这本书里面有这样一...

2024-12-03 08:00:37 200

原创 Node.js 资源泄漏案例:如何避免文件句柄泄漏导致的服务崩溃

这是来自之前项目中的一个真实案例,问题出现时,服务器的 CPU 占用率接近 100%,当时我们的运维同事还反馈问题出现后,就连一些监控工具也断掉了。问题定位一时不知道怎么更好的去查该问题,只得用最原始的方法,登陆到服务器后输入 htop 命令查看各进程的占用情况,发现有个 dbus-daemon 的进程 CPU 占用异常高,其它的业务进程 CPU 和内存的使用率看着都不高,如下图所示。在这里因为这...

2024-11-26 08:16:01 177

原创 邮件业务两次内存泄漏案例解析:业务代码与NPM包的双重挑战

这是同一个项目中先后产生了两次堆内存泄漏的案例。第一次是业务代码的原因,第二次是外部依赖导致。业务代码引起的第一次内存泄漏最初问题的暴露是由监控工具发现,并提醒到相应负责人。在接到任务后,第一时间先查看监控数据,线上统一使用的是 Grafana 工具,在 Grafana 的仪表盘可看到以下类似的内存曲线图。注:以下是笔者复现的效果图。看到内存整体呈上升趋势,内存泄漏问题基本上确认无疑。...

2024-11-18 08:00:20 174

原创 内存泄漏不再难:Chrome开发者工具实战教程

有了前面的理论基础,本篇从一个简单的内存泄漏例子开始,先掌握如何使用 Chrome 开发者工具进行内存泄漏分析。之后,讲解几个实际项目中遇到的不同类型的内存泄漏示例,让您学会如何识别和修复内存泄漏,之后再遇到类似问题能够从容面对。一个简单的内存泄漏示例这一个简单的示例,我们的目的主要是学习如何生成堆快照、分析内存泄漏及掌握 Chrome 开发者工具 Memory 面板各视图代表的含义。准备一份产生...

2024-11-15 08:01:27 355

原创 内存泄漏问题定位三步走

内存泄漏(Memory leak)是指程序运行中,某块已分配的内存不再使用时没有被正确的释放。随着程序运行时间越来越长,程序所能使用的内存资源也会被逐渐耗尽,最坏的结果是程序产生崩溃。内存泄漏分为堆内存泄漏、资源泄漏:堆内存泄漏:这个是开发中常见的一种内存泄漏类型,前面讲的 V8 垃圾回收策略,也都是在讲堆上分配的内存在不使用时要释放,否则就会产生内存泄漏。资源泄漏:这个是系统的资源限制。例如,文...

2024-11-11 08:00:53 384

原创 这个 API 竟能跟踪一个对象何时被回收!

通过 GC 日志我们可以追踪到垃圾回收信息,有没有想过如何追踪一个对象何时被释放? 今天给大家分享一个有意思的知识点。结合前面讲解的 GC 知识,下文给出两个示例,看看对象的回收和你的预期是不是一致。...

2024-11-08 08:00:51 84

原创 V8 GC 日志也能帮我们定位内存泄漏问题,但你能读懂吗?

默认情况下,GC 的触发时机由程序自动处理。做为研究测试,我们需要在一段代码后立即触发 GC,Node.js 中也提供了相应的 API 来触发。GC 日志看起来让人难以理解,本节中也将会对 GC 的日志组成做一个解释,通过对 GC 日志的分析,也会帮助我们进一步去排查内存泄漏问题。...

2024-10-30 08:01:04 108

原创 注意,Node v23 默认启用的 require(esm) 不支持 Top-level await

Node.js v23 版本于近期发布,一个备受关注的功能是默认启用 require(esm),意味着你可以在 CommonJS 文件中加载 ESModules 文件。例如:新建 esm.mjs 文件,代码如下:exportdefaultfunctionmjs(){console.log('myisESModules')}新建 common-js.js 文件,代码如下:cons...

2024-10-29 08:06:31 551

原创 深入理解 V8 堆内存限制与分配情况

内存在服务端是一个寸土寸金的东西,在 Node.js v12 版本之前启动应用程序时,如果没有显式指定 --max-old-space-size 标志修改堆的最大内存值,将会采用 V8 的默认设置,64 位的机器上为 1400MB,32 位机器上大约为 700MB。一旦应用程序申请的堆空间大于该限制,应用程序会被终止并抛出 JavaScript heap out of memory 错误。V8 关...

2024-10-28 08:01:25 311

原创 Node.js 进阶:V8 垃圾回收机制全解析

V8 使用垃圾回收器管理堆内存,它会从堆上找到那些活动的对象将其打上标记,也就是还有直接或间接引用的对象,把那些未被引用的对象给清除掉,从而为后续分配新对象提供更多的空间。GC 如何识别不活动对象垃圾回收器首要解决的问题是如何识别出哪些对象是不活动的,从而标记为可回收。根对象被定义为是活动的,我们通常称呼这个根对象为 “GC 根”。在应用程序中定义的全局变量属于根对象,这些全局对象始终可被访问。例...

2024-10-22 08:01:47 525

原创 为什么说掌握内存管理很重要?

内存管理是计算机系统应用中的一个重要概念,它管理着我们应用程序中的内存资源。例如,我们所用到的变量都需要经过内存的申请分配、读/写分配到的内存、并在适当时机释放和回收内存,无论什么编程语言,在使用内存时都需要经过这一生命周期过程。为什么说服务端的内存管理更重要?有一些 Node.js 开发者是从前端转过来的,遇到内存泄漏这样的问题可能会少一些,由此对这一块重视也相对较少。之前在看一些前端同学写的 ...

2024-10-17 08:00:53 233

原创 破解 Node.js 性能瓶颈:深入解密内存管理与泄漏排查!

随着 Node.js 在服务器端开发中的广泛应用,系统的稳定性与性能成为开发者必须关注的核心问题。内存管理作为影响系统性能的关键因素,尤为重要。Node.js 通过 V8 引擎实现了内存分配与垃圾回收机制,但即便如此,内存泄漏仍然是许多开发者在项目中遇到的常见难题。这个专栏是笔者在实际工作中的知识积累,之前也遇到了许多关于 Node.js 内存泄漏的实际案例。从刚开始的懵懵懂懂,到后来的沉着应对,...

2024-10-14 08:03:24 443

原创 时隔 4 年 Deno 2.0 候选版本发布,与 Node.js 的兼容性更好了!

时隔 4 年 Deno 2.0 发布了候选版本[1],但这一次社区上显得有点寂静!Deno 最初是 Node 的原创者 Ryan Dahl 创建的,他在发布 Deno 1.0 时曾提到 Node.js 在 2009 年时不得不做出的一些妥协和错误,并列出了 “十个 Node.js 的设计错误” 相关的文章网上很多。这次从 Deno 2.0 候选版本发布内容来看,有些似乎又在像 Node 靠拢!wi...

2024-09-25 08:30:56 434

原创 Node.js实验性支持TS第二步:TS专有语法可转为JS

点击上方Nodejs技术栈,关注公众号回复加群,加入 Node.js 技术交流群此前发布Node.js 已通过--experimental-strip-types标志实验性支持 TypeScript。这只是 Node.js 实验性支持 TypeScript 道路的第一步。对于一些 TypeScript 专有的功能,例如枚举、命名空间、装饰器等… 是不支持的。近日,Node.js 又迈出了...

2024-08-29 08:01:08 480

原创 Node.js v22.6.0 发布,可以直接运行 TS 了!

Node.js v22.6.0 近日刚发布,本次包含一个新功能:通过 --experimental-strip-types 标志提供了实验性的 TypeScript 支持。这意味着在 Node 中可以直接运行 TS 了!第一步,请先更新您的 Node.js 版本为 v22.6.0。不会安装的参考这篇文章 别再这样安装 Node.js 了,试试新官网推荐的这种方式!第二步,新建 app.ts 文件,...

2024-08-09 08:01:34 1085

原创 Node.js 将原生支持 TS!

Node.js 近日刚合并了一个 PR#53725[1],主要内容是通过设置 flag --experimental-strip-types,使得可以在 Node.js 中直接执行 TypeScript 文件。Node.js 会自动将 TypeScript 源代码转译为 JavaScript 源代码,不需要手动安装依赖来做转译了。在这个转译过程中,不会进行类型检查,所有的类型信息都会被丢弃。关于...

2024-07-26 08:00:23 433

原创 首份 React 状态调查结果上线了!

React 自发布以来已经 11 年了,这是有史以来第一次 State of React 社区调查的结果!本次调查是非官方组织的与 Meta、Vercel 或 React 团队无关。注意这些数据是在 2023 年 10 月 27 日至 11 月 15 日之间收集的,结果花了一段时间才发布。这也意味着 React 19 以及在这段时间之后可能发生的任何其他开发没有被涵盖。Hook 方式是成功的Rea...

2024-07-25 08:20:51 342

原创 文字版分享: 这几本 Node.js 经典书籍,推荐收藏!

1. 深入浅出 Node.js这本书是 Node.js 界的经典之作了,尽管过去了多年但是基本原理并没有太大变化,想进阶的同学必不可少,如果发现看不懂,可能是知识储备不够,哈哈 ????!作者:朴灵2. Node.js 调试指南本书主要站在运维角度讲解如何进行 Node.js 调试,包括 CPU、内存、APM、日志、监控等,这类的书目前发现的不多,这方面如果没有经验的,可以获取一些收获,了解到 Nod...

2024-06-17 08:02:31 1762

原创 Node.js 正在衰退吗?通过一些关键指标告诉你事实如何!

关于 “Node.js 凉了吗?” 类似话题大家平常在某乎上也有看到过。近日 Node.js 官方 Twitter 上转载了一则帖子,看来国外也有此讨论。Node.js TSC 成员 & fastifyjs 首席维护者 @Matteo Collina 对此进行了回复,表示关于 Node.js 衰退的传言被大大夸大了。Node.js 不仅不会消失,而且正在积极进化以满足现代 Web 开发的需...

2024-06-14 08:21:18 1267 1

原创 本周 Vercel 宣布,将支持 Node.js 20.x LTS 版本!

本周 Vercel 宣布,Node.js v20 LTS 在 vercel 平台上现已普遍可用。先了解下 Vercel 是什么?Vercel 是一个提供全球 CDN 加速的静态站点部署服务和 Serverless Functions(无服务器函数)的云平台,它使开发人员能够轻松地将其项目部署到该平台。Vercel 还提供了与 Git 集成、自动化部署、预渲染和服务器端渲染等功能。前端界著名的 Ne...

2024-03-31 17:00:54 466

原创 为 Node.js 作曲一首!

分享一个有趣的内容以“2009 年 Node.js 首次发布”为主题作曲一首,你会怎么做?看看下面这个效果,还不错哦!

2024-03-30 12:34:56 224

原创 Astro 宣布:将超过 500 多个测试从 Mocha 迁移到了 Node.js

近期,Astro 在其官方博客中宣布,虽然我们对 Mocha 感到满意,但也在寻求让我们的 CI 作业更快的方法。最终将超过 500多个测试从 Mocha 迁移到了 Node.js。先了解下 Astro 是什么?Astro 是适合构建像博客、营销网站、电子商务网站这样的以内容驱动的网站的 Web 框架。没有强绑定一些 UI 框架,它支持像 React、Preact、Svelte、Vue、Soli...

2024-03-29 09:01:03 931

原创 Node.js v20.12.0 (LTS) 发布,带来这些主要功能!

Node.js 20.12.0(LTS)发布,看其版本号属于一个重大更新了,这些功能是基于 21.7.1 版本。曾介绍过的主要功能新增 crypto.hash() 方法加载和解析环境变量:process.loadEnvFile(path) path 参数可选,默认从 .env 文件加载util.parseEnv(content)sea: 支持嵌入 assetsutil.styleText(form...

2024-03-28 07:30:38 931

原创 3 个超酷的 Node.js 新功能!

介绍下 Node.js 近期更新的 3 个功能,每个都很实用哦!1. 自带热更新开发模式下,每次代码的修改我们期望无需重启代码即可看到最新的变化,nodemon 模块在这个场景已经是标配功能了。有时只是写一个简单的脚本,做些测试或其它场景可能不太需要第三方模块,此时 Node.js “自带热更新” 功能就再合适不过了!一个 --watch 标志搞定这个场景。该标志首次添加于 Node.js v18...

2024-03-27 07:33:38 340

原创 一个提出 5 年的 Node.js 模块问题,终被解决!

一直以来 Node.js 中存在一个问题,CommonJS 与 ES Modules 如何更好的共存? 是令大多数 Node.js 开发者头疼的问题。问题当在 ES Modules 模块中引入 CommonJS 模块代码,一切是 Ok 的。如下代码所示://c.jsmodule.exports={moduleName:'a'}//m.mjsimportC_Modulefr...

2024-03-26 10:10:35 548

原创 别再这样安装 Node.js 了,试试新官网推荐的这种方式!

看似很简单的一个问题,已经不止一次的遇到过有 Node.js 初学者来咨询怎么安装 Node 了,当我推荐 nvm 时,有些就懵了,这是什么?见过很多的初学者一开始是从官网下载一个 Node.js 的安装程序包然后解压并运行,现在这一步骤 Node.js 新官网的引导信息看起来更友好了(就在本周 Node.js 更新了新的官网)。做为一个 “专业的 Node.js 开发者”,还是更推荐大家通过版本...

2024-03-22 10:16:46 243

原创 终端输出 Table?不要再用 console.table 了!这个 Node.js 库值得尝试下~

使用 Table 将一组数据打印在终端,你最先想到的是什么?console.table()?以前我是这样做的!近期发现了一个有意思的 NPM 库 voici.js 在输出到终端时可以将数据做一些格式化,当一组数据特别大时,使用该库的效果会更加的理想。voici.js 是用 TypeScript 编写的一个 Node.js 库,相比于 Node.js 原生的 console.table(),它提供的...

2024-03-19 08:01:40 488

原创 2024 年这 5 个 Node.js 后端框架最受欢迎!

自 2009 年以来,Node.js 一直是备受关注的话题,大多数后端开发人员倾向于选择 Node.js。在过去几年中,它的受欢迎程度已经不断提高。它被认为是美国最受欢迎的网络开发工具,包括像 Netflix 和 PayPal 这样的客户。增加其受欢迎程度的原因是减少了加载时间和性能改进。因此,分析 2024 年的前 5 个 Node.js 后端框架至关重要。因此,本文将介绍 2024 年的前 5...

2024-03-15 08:12:21 2422

原创 Deno、Node.js、Bun、Deno Deploy... 速度大 PK!最后赢家是它?

最近我写了一篇关于如何在 Deno 运行时、Deno Deploy、Node.js、Bun 和 Cloudflare Workers 下让 oak 框架工作的文章,我开始思考它们之间是否会有性能差异。嗯,我找到了答案。方法和过程我在 JavaScript/TypeScript 领域看过很多基准测试,并且几乎每一个都被反复辩论过优劣。我相信某些人会对我的方法和过程提出异议,但我想做一些我认为公平的事...

2024-03-13 07:30:18 974

原创 Github Actions 宣布将于 5 月份弃用 Node16 强制使用 Node20

Node.js 16 自 2023 年 9 月起已停止支持。GitHub Actions 宣布将于 2024 年 5 月 13 日开始强制使用 Node.js 20。如果想更早的进行测试,可使用环境变量FORCE_JAVASCRIPT_ACTIONS_TO_NODE20=true 立即强制使用 Node.js 20。要选择退出此操作并继续使用 Node.js 16,只需选择将ACTIONS_ALL...

2024-03-13 07:30:18 953

原创 在 2024 年选择合适的 Node.js 包管理器:一份比较指南

来源|NodeSource译者、整理| 五月君原文https://nodesource.com/blog/nodejs-package-manager-comparative-guide-20242024 年标志着 Node.js 生态系统的一个关键时刻,开发人员在选择适合其项目的正确包管理器时面临不同选择。npm、Yarn和pnpm 是领先者,因为它们在Node.js 生态系统中被广泛使...

2024-03-08 08:12:10 1706

原创 Node.js 21.7.0 发布:内置彩色文本输出、环境变量功能增强、crypto 增加新 hash 方法...

1. 内置方法输出彩色文本意味着通过 console.log 可以间接的输出彩色文本了,不用再引入三方库了。const{styleText}=require('node:util');consterrorMessage=styleText('red','Error!Error!');console.log(errorMessage);2. 加载和解析环境变量通过两个 API...

2024-03-08 08:12:10 540

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除