摘要: 认识polyfill polyfill可以帮助我们更好的去使用javascript 比如我们使用了一些语法特性(例如:Promise、Generator、Symbol)等以及实例方法例如(Array.prototype.includes等) 但是某些浏览器压根不认识这些特性,必然会报错; 那么我们就 阅读全文
posted @ 2022-04-18 23:12 Mr-Hou88888 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 为什么需要babel 对于babel对于前端来说现在是不可缺少的一部分 在开发中,我们想要使用ES6+语法,或者TS,开发Vue项目,他们都是离不开Babel的 babel到底是什么呢? Babel是一个工具链,主要用于处理旧浏览器的兼容如:将es6+转换为向后兼容的javascript,转化TS等 阅读全文
posted @ 2022-04-16 19:21 Mr-Hou88888 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 认识source-map 我们的代码通常运行在浏览器上时,是通过打包压缩的 在浏览器上跑的代码和我们编写的源代码是不一样的 比如ES6的代码可能被转换为ES5 比如代码可能进行丑化压缩,会将编码名称等修改 比如TS等方式的编码被转换为JS 那么当我们代码如果报错了,调式转化后的代码的时候会很麻烦 那 阅读全文
posted @ 2022-04-14 21:33 Mr-Hou88888 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 在webpack的顶层配置中有一个配置叫mode(模式),他其中的值有3种'production、development、none 默认的值为production(生产环境),你会发现webpack解析后的代码是经过压缩和丑化的 因为在你设置mode的时候,他默认代表配置了哪些东西 developm 阅读全文
posted @ 2022-04-14 20:37 Mr-Hou88888 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 什么是plugin 官方解释: 插件 是 webpack 的 支柱 功能。Webpack 自身也是构建于你在 webpack 配置中用到的 相同的插件系统 之上! 插件目的在于解决 loader 无法实现的其他事。Webpack 提供很多开箱即用的 插件。 Loader是用于特定的模块类型进行转换; 阅读全文
posted @ 2022-04-12 13:24 Mr-Hou88888 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 在webpack5之前,加载一些资源我们需要使用一些loader,如raw-loader、url-loader、file-loader 在webpack5开始,我们可以直接使用资源模块类型(asset module type),来替代上面的loader 资源模块类型(asset module typ 阅读全文
posted @ 2022-04-12 11:09 Mr-Hou88888 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 当我们new Vue的时候会进入Vue方法 src/core/instance/index.js function Vue (options) { if (process.env.NODE_ENV !== 'production' && !(this instanceof Vue) ) { warn 阅读全文
posted @ 2022-04-12 00:37 Mr-Hou88888 阅读(65) 评论(0) 推荐(0) 编辑
摘要: Vue入口文件是 src/platforms/web/entry-runtime-with-compiler.js 你可以从该文件看到 //引入 vue import Vue from './runtime/index' //往vue的原型中加入了一个$mount方法 Vue.prototype.$ 阅读全文
posted @ 2022-04-11 16:36 Mr-Hou88888 阅读(198) 评论(0) 推荐(0) 编辑
摘要: vue是用Flow作为静态语法的检查工具,所以要读vue源码最好是了解下Flow或者是Typescript,个人感觉TS和Flow差距不大,以不变应万变,万变不离其中 Vue.js源码目录设计 vue.js的源码都在src目录下 src |——compiler 编译相关 |——core 核心代码 | 阅读全文
posted @ 2022-04-11 16:16 Mr-Hou88888 阅读(38) 评论(0) 推荐(0) 编辑
摘要: loader是什么? webpack 只能理解 JavaScript 和 JSON 文件,这是 webpack 开箱可用的自带能力。loader 让 webpack 能够去处理其他类型的文件,并将它们转换为有效 模块,以供应用程序使用,以及被添加到依赖图中。 loader可以用于对模块的源代码进行转 阅读全文
posted @ 2022-04-11 15:37 Mr-Hou88888 阅读(128) 评论(0) 推荐(0) 编辑