webpack 高级配置

如何支持 IE1234567891011.browserslistrc[production] # 正式环境> 1% # 支持全世界大于1%的浏览器ie 9[modern] # 开发环境last 1 chrome versionlast 1 firefox version[ssr]node 12 用 babel-loader 打包 JS 其实 web...

Read More

webpack plugn 插件原理

从上文提炼出 webpack 的一些主要流程 init => run(前两个一般不用) => compile(编译开始的时候) => compilation(准备编译的整个过程) => make(开始编译) => afterCompile(编译结束) => se...

Read More

Web性能优化-什么是多路复用

1. HTTP/2 的帧与流等概念 HTTP/2 是基于二进制帧(Frame),他将一个TCP连接分为若干个流(Stream),每个流中可以传输若干消息(Message),每个消息由若干最小的二进制帧(Frame)组成。 科普:什么是二进制?如果一个二进制人类看得懂,那他就是字符串,否则就是二进制 1234567---------...

Read More

阅读 webpack 源码

webpack@5.10.1webpack-cli@4.2.0阅...

Read More

为什么要使用 composition-api

文档动机章节精读《Vue3.0 Function API》Vue3 究竟好在哪里? Vue2 的代码模式下存在的几个问题。 随着功能的增长,复杂组件的代码变得越来越难以维护。 尤其发生你去新接手别人的代码时。 根本原因是 Vue 的现有 API 通过「选项」组织代码,但是在大部分情况下,通过逻辑考虑来组织代码更有意义。 缺少一种比较「干净」的在多个组件之间...

Read More

vue VS react

基础:vue 是双向绑定,MVVMreact 是单项数据流 ui = f(data) 进阶:vue 早就不强调 MVVM,主要强调数据响应式(核心),也早就没有了双向绑定,全篇文档就只有 v-model 出现了这个词。react 核心的函数式,(无副作用,引用透明,纯函数,数据不可变)这些词 vue 从来不会提到,绝对不会说,hook 是怎么实现在...

Read More

封装一个打开 dialog 的函数

123456789101112131415161718import Dialog from './Dialog.vue'import { createApp, h } from 'vue'export const openDialog = options => { const &#...

Read More

css-loader 源码阅读

全部折叠代码以后,我们发现前两步也是获取 options,验证 options 直接看最后一行,是一个 callback,因为 css-loader 是异步的, 我们主要看 moduleCode,点击进入 基本架构和之前差不多,也是得到 code,然后 return 出去 除此之外还有很多的代码都是在做兼容和加载另外的插件

Read More

两个 loader 源码总结

raw-loader webpack 提供 loader-utils 和 schema-utils 作为辅助工具 webpack 通过 this 来传递上下文 getOptions(this) 可以获取 options validate 可以验证 options 是否合法 JSON 的 2028 和 2029 问题 css-loader 无关代...

Read More

raw-loader 源码阅读

这个最简单的 loader 就是加载任意文件,但是不做任何处理,直接导出 所有代码就这么几行 获取选项(第 7 行) 验证选项(第 9 行,这两步像是 webpack 的固定流程) 然后开始转换代码(第 14 行)(这里之所以使用 replace 是因为 JSON 的 bug,因为使用了 JSON.stringify 来加引号造成的,他不仅能加引号,还会把...

Read More