记一次qiankun落地遇到的问题

2022-07-03
阅读 9 分钟
6.3k
微前端系列之:一、记一次微前端技术选型二、清晰简单易懂的qiankun主流程分析三、记一次qiankun落地遇到的问题本文是系列之三。项目背景app下架需要把所有页面都迁移到企业微信h5,作为主应用。本来内嵌到app webview的h5,以微应用的方式接入到主应用。主应用技术选型:vite + vue3 + qiankun子应用,有vue、react__we...

清晰简单易懂的qiankun主流程分析

2022-07-03
阅读 10 分钟
3.4k
微前端系列之:一、记一次微前端技术选型二、清晰简单易懂的qiankun主流程分析三、记一次qiankun落地遇到的问题本文是系列之二。综述qiankun 是在 single-spa 基础上进行二次开发的。本文核心分析应用加载、应用切换、应用隔离 这三个核心功能原理。一开始计划是直接从源码角度上介绍流程和原理的,但会导致篇幅过长,且...

记一次微前端技术选型

2022-07-03
阅读 3 分钟
2.7k
微前端系列之:一、记一次微前端技术选型二、清晰简单易懂的qiankun主流程分析三、记一次qiankun落地遇到的问题本文是系列之一。项目背景:app下架需要把所有页面都迁移到企业微信h5规划架构:主应用提供菜单组件和公用方法,然后微应用需要渲染到指定的容器。所以要求微前端框架提供隔离样式的功能、以及通讯功能。只给...

分析vite2.x/rollup分包原理,解决chunk碎片问题

2022-05-30
阅读 11 分钟
6.7k
年前开始负责新项目开发,是一个h5内嵌到企业微信。技术栈是 vite2.x + vue3.x。随着业务的开展,版本迭代,页面越来越多,第三方依赖也越来越多,打出来的包也越来越大。针对这个问题,很容易就会想到分包这个解决方案。根据 vite 官方文档 提示,做了 vendor 分包之外,还对路由引用的组件做了异步加载处理,也会产生...

编写webpack插件:删除没有被依赖的业务文件

2022-03-04
阅读 4 分钟
2k
背景SCRM 项目需要交接给另外一个部门。领导出于一些考虑,需要把对方只需要的功能保留,其他功能删除,然后把代码上传到新的仓库地址,再作交接。和产品经理沟通之后,明确了以下需求:以页面(功能)为单位,保留或者删除个别页面需要删除一些功能问题分析以页面(功能)为单位,保留或者删除。也就是说,按照粒度从大...

记一次vite2.x打包优化过程

2022-02-26
阅读 26 分钟
21.6k
最近做的需求是在客户端webview内嵌h5,使用的 vite2.x 和 vue3 来开发,在第一版提测的时候,发现打包之后,总包大小有 4M 多,有很大的优化的空间。

vite-plugin-vconsole在windows不生效的原因排查

2021-12-13
阅读 3 分钟
5k
windows客户端"vite-plugin-vconsole": "^1.1.0""vite": "^2.7.0","vconsole": "^3.9.5",node v12.18.3yarn 1.22.15vite.config.js配置如下:

require源码分析

2021-11-23
阅读 12 分钟
1.7k
这里需要注意的是,把 skipFiles 需要把 <node_internals>/** 注释掉,这样才能够 debug Node 的源码。

vue-cli-service源码分析

2021-11-18
阅读 56 分钟
6.3k
1. vue-cli-service 解决什么问题?根据官方文档的描述,vue-cli-service 是 vue-cli 的运行时依赖。它可以:基于webpack构建,内置了合理的默认配置;可以通过配置文件进行配置webpack;可以通过插件扩展 vue-cli-service 的命令2. 带着问题看源码vue-cli-service 主要流程是怎样的?vue-cli-service serve 和 vue-cli-...

从libuv源码看清nodejs事件循环几个钻牛角尖的问题

2021-11-05
阅读 6 分钟
2.2k
I/O,就是输入(input)和输出(output)的简写。Linux系统中,把一切都看做是文件。文件(常规文件、socket、FIFO、管道、终端……)就是一串二进制流,当信息交换中,我们对这些流进行数据的收发操作,就是I/O操作。当进程打开现有的文件或者创建新文件时,内核向进程返回一个文件操作符。文件操作符是一个索引,它就是...

分别用es5和es6实现异步串行和异步并行

2021-09-30
阅读 5 分钟
1.8k
同步:【函数视角】函数调用之后,需要等待函数返回之后再调用下一个函数异步:【函数视角】函数调用之后,无需等待函数返回就可以调用下一个函数阻塞:【线程视角】任务调用之后,当前线程被挂起,需要等待被唤醒才可以继续工作非阻塞:【线程视角】任务调用之后,当前线程不会被挂起,无需等待被唤醒也可以继续工作串...

axios如何实现interceptors

2021-08-25
阅读 6 分钟
4.5k
接口分析[链接]普通用法 {代码...} 删除拦截器 {代码...} 同步处理 {代码...} 条件执行 {代码...} 提出问题:a. interceptor是如何实现请求的前置处理和后置处理?b. 为什么request interceptor要考虑同步执行?[链接]里提到,默认synchronous为false,是异步执行的。当js主线程堵塞的时候,就会导致延迟执行request inte...

axios是如何取消发生请求的

2021-08-20
阅读 4 分钟
1.7k
接口分析[链接] {代码...} {代码...} 就是添加cancelToken参数,值是可以一个对象,有可以取消的操作。源码分析参考使用案例,定位axios.CancelToken,找到源码[链接] {代码...} {代码...} {代码...} 搜索代码cancelToken,定位ib/core/dispatchRequest.js {代码...} 追查throwIfCancellationRequested调用的地方,点击...

前端网络层优化

2021-08-18
阅读 2 分钟
1.2k
在日常的开发需求,会遇到同一个项目可能会对接不同的后端开发团队,他们的接口不尽相同,如接口前缀、登录态验证的方式、数据返回的格式(数据字段、状态码)等等,从而增加前端对接口调用代码的混乱。

小程序Jenkins部署实践

2020-08-06
阅读 14 分钟
3k
提测之后和每次修改bug,都需要打包给测试同事新包,而且不同渠道就要打不同的包,平均打一次包就要花费2min~3min,很浪费时间;打包过程占用本地机器的资源,导致电脑卡顿;打完包之后还要手动发包给测试,每个包还要重命名标识渠道。