脚手架内置esbuild踩坑记录
随着项目越来越大后,咱们脚手架使用 babel
进行代码编译感觉越来越慢。为了提升编译速度,尝试了一下使用 esbuild
后发现速度提升明显,于是决定将 esbuild
正式集成到脚手架中。
随着项目越来越大后,咱们脚手架使用 babel
进行代码编译感觉越来越慢。为了提升编译速度,尝试了一下使用 esbuild
后发现速度提升明显,于是决定将 esbuild
正式集成到脚手架中。
React
的状态管理已经是一个老生常谈的问题了。从 React
内置的 Context API
和 Hooks API
,到第三方库如 Redux
、Mobx
和 Recoil
,再到二次封装的库如 Rematch
和国内用户熟知的 dvajs
等等。可见社区对状态管理是如此的纠结,如果你也面对同样的纠结而无从下手,下面我将为你介绍如何基于 Redux
二次封装一个轻量级但是简单易用的状态管理工具。
曾经看到有篇文章写了关于用户对于网站的性能延迟的感知,其中列出了几个关键性的指标:
如今基于 node.js
的 cli
工具层出不穷,尤其以前端脚手架工具更迭最为频繁,纯构建工具有 grunt
、gulp
、webpack
、parcel
和 rullup
等,各前端框架也有各自的 cli
工具 create-react-app
、vue-cli
和 angular-cli
,各大厂的集成化解决方案 fis
、jdf
、umi
等。但是每个团队的应用场景不同,以上工具不一定完全满足需求,是时候自己动手开发一个定制化的 cli
工具了。
window 对象是 BOM 的核心,可以控制窗口、框架和弹出窗口,也扮演着 ECMAScript 中 Global 对象的角色。
定义全局变量与在 window 对象上直接定义属性的差别:全局变量不能通过 delete 操作符删除,而定义在 window 对象上的属性是可以的。
在程序中, 语义 指的是一段代码的含义 — 例如 “运行这行代码会产生怎样的影响?”, 或者 “这个 HTML 的元素有什么作用,扮演了什么样的角色” (不只是 “它看上去像是什么?”。)
nginx
已经成为 web
开发者不可或缺的工具,虽然平时我们用到的服务器,运维都已经帮我们安装配置好了 nginx
,但作为开发人员,掌握如何搭建和配置服务器环境,能让我们的工作更加得心应手。
create-react-app
是由 facebook
官方出品的用于搭建 react app
项目的脚手架工具,非常强大且简单易用,无需配置就能搭建一个 react app
。但也正是由于很多东西它都已经封装好了,而且配置文件还内置在了包里,在项目中不可见,对于很多新手而言,要理解这一套东西还是比较困难。
最近一直在折腾构建工具,主要针对以前的工程进行改造,尝试着能搭建一套比较好用的构建工具,在这个过程中也做了一些新的实践。下面我就来谈谈在这次改造中的心得体会,内容不局限于某一款构建工具,不管用 webpack
、 JDF
、gulp
、grunt
还是我比较喜欢的 fis
,都可以很容易地实现。