Richard Chen 发布于 08月13, 2024

脚手架内置esbuild踩坑记录

随着项目越来越大后,咱们脚手架使用 babel 进行代码编译感觉越来越慢。为了提升编译速度,尝试了一下使用 esbuild 后发现速度提升明显,于是决定将 esbuild 正式集成到脚手架中。

阅读全文 »

Richard Chen 发布于 04月21, 2022

如何打造一款简单易用的 React 状态管理工具

React 的状态管理已经是一个老生常谈的问题了。从 React 内置的 Context APIHooks API,到第三方库如 ReduxMobxRecoil,再到二次封装的库如 Rematch 和国内用户熟知的 dvajs 等等。可见社区对状态管理是如此的纠结,如果你也面对同样的纠结而无从下手,下面我将为你介绍如何基于 Redux 二次封装一个轻量级但是简单易用的状态管理工具。

阅读全文 »

Richard Chen 发布于 10月10, 2020

如何从零开始开发一个 node.js 命令行(cli)工具

如今基于 node.jscli 工具层出不穷,尤其以前端脚手架工具更迭最为频繁,纯构建工具有 gruntgulpwebpackparcelrullup 等,各前端框架也有各自的 cli 工具 create-react-appvue-cliangular-cli,各大厂的集成化解决方案 fisjdfumi 等。但是每个团队的应用场景不同,以上工具不一定完全满足需求,是时候自己动手开发一个定制化的 cli 工具了。

阅读全文 »

Richard Chen 发布于 02月03, 2019

浏览器API学习——BOM浏览器对象模型

window 对象是 BOM 的核心,可以控制窗口、框架和弹出窗口,也扮演着 ECMAScript 中 Global 对象的角色。

定义全局变量与在 window 对象上直接定义属性的差别:全局变量不能通过 delete 操作符删除,而定义在 window 对象上的属性是可以的。

阅读全文 »

01月22, 2019

HTML学习之—语义化标签

在程序中, 语义 指的是一段代码的含义 — 例如 “运行这行代码会产生怎样的影响?”, 或者 “这个 HTML 的元素有什么作用,扮演了什么样的角色” (不只是 “它看上去像是什么?”。)

阅读全文 »

04月14, 2018

nginx安装、配置及支持https不完全手册

nginx 已经成为 web 开发者不可或缺的工具,虽然平时我们用到的服务器,运维都已经帮我们安装配置好了 nginx ,但作为开发人员,掌握如何搭建和配置服务器环境,能让我们的工作更加得心应手。

阅读全文 »

04月06, 2018

不用create-react-app搭建基于webpack的react项目

create-react-app 是由 facebook 官方出品的用于搭建 react app 项目的脚手架工具,非常强大且简单易用,无需配置就能搭建一个 react app。但也正是由于很多东西它都已经封装好了,而且配置文件还内置在了包里,在项目中不可见,对于很多新手而言,要理解这一套东西还是比较困难。

阅读全文 »

03月10, 2018

搭建一套好用的前端构建工具的方法

最近一直在折腾构建工具,主要针对以前的工程进行改造,尝试着能搭建一套比较好用的构建工具,在这个过程中也做了一些新的实践。下面我就来谈谈在这次改造中的心得体会,内容不局限于某一款构建工具,不管用 webpackJDFgulpgrunt 还是我比较喜欢的 fis,都可以很容易地实现。

阅读全文 »

03月10, 2018

用FIS3实现组件化及前后端共用模板的尝试

接触 FIS 也有段时间了,用得越久越能体会到它的强大。刚开始只是用 FIS2+swig 解决了作为一个切图仔长久以来模板复用的问题,后来涉及到了一些 JS 开发,于是用到了我厂的JDF,基本上实现了组件化开发和前后端模板共用,前端模拟 velocity 语法,因为我厂后台统一使用 velocity 模板引擎。于是想到在 FIS 上试试,下面说说详细的尝试过程。

阅读全文 »