• ES5 在 Web 上的现状

    最后一个支持 ES5 的浏览器 IE 11 在 2022 年被微软停止支持,那么今天 Web 上的 ES5 现状如何?在构建生产代码时,Web 开发者的最佳实践是什么? 本文将通过数据来回答这些问题,并基于这些数据为网站开发者和库作者提供一...
  • setImmediate() vs setTimeout() 在 JavaScript 中的区别

    在 JavaScript 中,setImmediate() 和 setTimeout() 都用于调度任务,但它们的工作方式不同。 JavaScript 的异步特性JavaScript 以其非阻塞、异步行为而闻名,尤其是在 Node.js 环境中...
  • Node.js 中的进程和线程原理学习

    本文所有的代码均基于 node.js 14 LTS 版本分析 概念进程是对正在运行中的程序的一个抽象,是系统进行资源分配和调度的基本单位,操作系统的其他所有内容都是围绕着进程展开的 线程是操作系统能够进行运算调度的最小单位,其是进程中的一个...
  • LLM 应用开发入门 - 实现 langchain.js ChatModel 接入火山引擎大模型和实现一个 CLI 聊天机器人(下)

    书接上回,我们已经实现了一个 langchain.js 接入火山引擎的 ChatModel。 本文我们实现将这个大模型接入到聊天 CLI 实现和大模型进行交互式问答 需求我们希望这个简易的聊天 CLI 能够拥有以下功能 启动时由用户输入 pr...
  • LLM 应用开发入门 - 实现 langchain.js ChatModel 接入火山引擎大模型和实现一个 CLI 聊天机器人(上)

    前言Langchain 是一个大语言模型(LLM)应用开发的框架,提供了 LLM 开发中各个阶段很多非常强大的辅助工具支持。对于进行 LLM 开发是必不可少的工具库。 本文将通过一个实际的开发例子来入门 LLM 开发基础工具链,并实现 lang...
  • TypeScript Project References npm 包小实践

    npm 包输出 es/cjs 产物在开发一个 npm 包时,通常需要同时输出 ES 模块和 CommonJS 模块的产物供不同的构建进行使用。在只使用tsc进行产物编译的情况下,我们通常可以通过配置两个独立的 tsconfig.json 配置文...
  • React 19 升级指南

    前言React 已于近日发布了 v19 的 beta 版本,同时为了帮助后续的 v19 升级,也同时发布了 v18.3.0的正式版, 与 v18.2 版本完全相同,但添加了弃用 API 的警告和其他为 React 19 所需的更改 安装使用新...
  • 前端 js 异常那些事

    前言人无完人,所以代码总会出异常的,异常并不可怕,关键是怎么处理 什么是异常程序发生了意想不到的情况,影响到了程序的正确运行 从根本上来说,异常就是一个普通的对象,其保存了异常发生的相关信息,比如错误码、错误信息等。以 JS 中的标准内置对象 ...
  • 在ES模块中的使用 __dirname

    前言ECMAScript 模块是 JavaScript 的新标准格式。在 Node.js 中越来越多的库逐渐从从 CommonJS 转移到 ES 模块 注:这里是指“真”ES 模块并不是指代码中 Node.js 中使用 import 写法但是...
  • 巧用 exports 和 typeVersions 提升 npm 包用户使用体验

    默认导出对于开发一个 JavaScript 三方库供外部使用而言,package.json是其中不可缺少的一部分 一般而言,对于库开发者来说,我们会在package.json中指定我们的导出入口。一般而言会涉及两个字段main和export,它...