Promise.all
Promise.all
是日常使用频率非常高的异步方法,这两天回顾了一下Promise
的几个静态方法,对Promise.all
又有了一些新的认识。
Promise.all
是日常使用频率非常高的异步方法,这两天回顾了一下Promise
的几个静态方法,对Promise.all
又有了一些新的认识。
Node 从v12.17(LTS)
版本开始正式支持 ESM 模块语法,但是 node 本身又支持 CJS 语法,直接迁移的话还是有些成本的。
之所以学习vue-cli
的源码,主要是我个人想提升脚手架搭建方面的能力,学习vue-cli
插件机制的设计模式和一些脚手架开发的技巧。
vue-cli
是 vue 官方出品的脚手架项目,用来快速搭建vue
项目,一键生成项目基础代码。
一直对其内部的运行原理比较好奇,并且开发脚手架的能力也是一名前端开发人员需要掌握的技能,所以这里以v4.5.15
版本为例,记录一下源码研究的过程和学习点。
上文说到创建完package.json
文件并安装plugins
的依赖,然后后续会初始化Generator
实例,Generator
内部会调用各个plugin
,涉及到插件机制的实现,这里单独起一篇介绍。
vue-cli-service
作为第一个必然会被调用的plugin
,其功能主要是生成项目模板文件,以及通过serve
、build
等命令进行开发环境server
的启动和生产环境的构建打包等。下面分析其内部逻辑。
上文说到通过@vue/cli-service
会加载执行文件,并通过插件机制注册命令行参数和执行文件的对应关系,这样在输入特定 CLI 命令参数的时候就能找到对应的执行程序,例如vue-cli-service serve
会去执行servs.js
程序。
这篇文章就来分析servs.js
在开发环境下是如何构建运行vue
项目的。
本文介绍解决监听开发环境代理地址更改后自动重启webpack-dev-server
的问题。
webpack-devServer
,一般简称WDS
,是 webpack 内置的用于开发环境的服务器配置。webpack
本身提供三种方式用于开发环境修改代码以后自动编译,以提高开发效率:
总体来说,WDS 配置最容易,并且提供 HMR 的功能,只需要配置devServer.hot: true
就直接启用,方便到了极致!下面就重点看一下 WDS 的proxy
配置。