跳到主要内容

· 阅读需 34 分钟
Oxygen

背景

在业务场景开发过程中,经常会需要我们手动编写一些方法来解决一些业务场景问题,例如防抖、节流、正则表达式表单校验方法等。一般我们会把这些方法统一放在项目的某个目录,例如utils下维护。

但是当涉及到跨团队使用的时候,这些方法通过npm包的形式来维护会减少团队开发成本。这篇文章主要探索使用rollupapi-extractor打包基于 TypeScript 开发的类库的使用过程。

· 阅读需 9 分钟
Oxygen

Promise.all

Promise.all是日常使用频率非常高的异步方法,这两天回顾了一下Promise的几个静态方法,对Promise.all又有了一些新的认识。

· 阅读需 7 分钟
Oxygen

image-20220303224642507

Node 从v12.17(LTS)版本开始正式支持 ESM 模块语法,但是 node 本身又支持 CJS 语法,直接迁移的话还是有些成本的。

· 阅读需 12 分钟
Oxygen

为什么学习

之所以学习vue-cli的源码,主要是我个人想提升脚手架搭建方面的能力,学习vue-cli插件机制的设计模式和一些脚手架开发的技巧。

· 阅读需 19 分钟
Oxygen

image-20220122161749258

vue-cli是 vue 官方出品的脚手架项目,用来快速搭建vue项目,一键生成项目基础代码。

一直对其内部的运行原理比较好奇,并且开发脚手架的能力也是一名前端开发人员需要掌握的技能,所以这里以v4.5.15版本为例,记录一下源码研究的过程和学习点。

· 阅读需 9 分钟

image-20220122161800174

上文说到创建完package.json文件并安装plugins的依赖,然后后续会初始化Generator实例,Generator内部会调用各个plugin,涉及到插件机制的实现,这里单独起一篇介绍。

· 阅读需 12 分钟
Oxygen

image-20220122161800174

vue-cli-service作为第一个必然会被调用的plugin,其功能主要是生成项目模板文件,以及通过servebuild等命令进行开发环境server的启动和生产环境的构建打包等。下面分析其内部逻辑。

· 阅读需 7 分钟
Oxygen

image-20220122161800174

上文说到通过@vue/cli-service会加载执行文件,并通过插件机制注册命令行参数和执行文件的对应关系,这样在输入特定 CLI 命令参数的时候就能找到对应的执行程序,例如vue-cli-service serve会去执行servs.js程序。

这篇文章就来分析servs.js在开发环境下是如何构建运行vue项目的。