跳到主要内容

· 阅读需 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项目的。

· 阅读需 14 分钟
Oxygen

devServer

webpack-devServer,一般简称WDS,是 webpack 内置的用于开发环境的服务器配置。webpack本身提供三种方式用于开发环境修改代码以后自动编译,以提高开发效率:

总体来说,WDS 配置最容易,并且提供 HMR 的功能,只需要配置devServer.hot: true就直接启用,方便到了极致!下面就重点看一下 WDS 的proxy配置。