其他分享
首页 > 其他分享> > 09_Vue3组件化之webpack5篇(三)

09_Vue3组件化之webpack5篇(三)

作者:互联网

Vue3组件化之webpack5篇(三)

为什么需要babel?

事实上,在开发中我们很少直接去接触babel,但是babel对于前端开发来说,目前是不可缺少的一部分

那么,Babel到底是什么呢?

在这里插入图片描述

Babel命令行使用

babel本身可以作为一个独立的工具(和postcss一样),不和webpack等构建工具配置来单独使用。

如果我们希望在命令行尝试使用babel,需要安装如下库:

使用babel来处理我们的源代码:npm install @babel/cli @babel/core -D

插件的使用

比如我们需要转换箭头函数,那么我们就可以使用箭头函数转换相关的插件

查看转换后的结果:我们会发现 const 并没有转成 var

Babel的预设preset

但是如果要转换的内容过多,一个个设置是比较麻烦的,我们可以使用预设(preset):

后面我们再具体来讲预设代表的含义;

安装@babel/preset-env预设:npm install @babel/preset-env -D

执行如下命令:npx babel src --out-dir dist --presets=@babel/preset-env

Babel的底层原理

babel是如何做到将我们的**一段代码(ES6、TypeScript、React)转成另外一段代码(ES5)**的呢?

Babel也拥有编译器的工作流程:

https://github.com/jamiebuilds/the-super-tiny-compiler

Babel编译器执行原理

Babel的执行阶段 :

在这里插入图片描述

当然,这只是一个简化版的编译器工具流程,在每个阶段又会有自己具体的工作:

在这里插入图片描述

babel-loader

在实际开发中,我们通常会在构建工具中通过配置babel来对其进行使用的,比如在webpack中。

那么我们就需要去安装相关的依赖:

如果之前已经安装了@babel/core,那么这里不需要再次安装;npm install babel-loader -D

我们可以设置一个规则,在加载js文件时,使用我们的babel:

在这里插入图片描述

指定使用的插件

在这里插入图片描述

babel-preset

如果我们一个个去安装使用插件,那么需要手动来管理大量的babel插件,我们可以直接给webpack提供一个preset,webpack会根据我们的预设来加载对应的插件列表,并且将其传递给babel。

比如常见的预设有三个:

安装preset-env:npm install @babel/preset-env -D

在这里插入图片描述

Babel的配置文件

像之前一样,我们可以将babel的配置信息放到一个独立的文件中,babel给我们提供了两种配置文件的编写:

它们两个有什么区别呢?目前很多的项目都采用了多包管理的方式(babel本身、element-plus、umi等);

在这里插入图片描述

Vue源码的打包

我们主要是学习Vue的,那么我们应该包含Vue相关的代码:

在这里插入图片描述

界面上是没有效果的:并且我们查看运行的控制台,会发现如下的警告信息;

在这里插入图片描述

Vue打包后不同版本解析

vue(.runtime).global(.prod).js:

vue(.runtime).esm-browser(.prod).js:

vue(.runtime).esm-bundler.js:

vue.cjs(.prod).js:

运行时+编译器 vs 仅运行时

在Vue的开发过程中我们有三种方式来编写DOM元素:

所以,Vue在让我们选择版本的时候分为 运行时+编译器 vs 仅运行时

VSCode对SFC文件的支持

在前面我们提到过,真实开发中多数情况下我们都是使用SFC( single-file components (单文件组件) )。

我们先说一下VSCode对SFC的支持:

编写App.vue代码

接下来我们编写自己的App.vue代码:

在这里插入图片描述

App.vue的打包过程

我们对代码打包会报错:我们需要合适的Loader来处理文件。

在这里插入图片描述

这个时候我们需要使用vue-loader: npm install vue-loader -D

在webpack的模板规则中进行配置:

在这里插入图片描述

@vue/compiler-sfc

打包依然会报错,这是因为我们必须添加@vue/compiler-sfc来对template进行解析: npm install @vue/compiler-sfc -D

另外我们需要配置对应的Vue插件:

在这里插入图片描述

重新打包即可支持App.vue的写法

全局标识的配置

我们会发现控制台还有另外的一个警告:

在这里插入图片描述

在GitHub上的文档中我们可以找到说明:
在这里插入图片描述

以上学习自coderwhy老师的Vue3+ts课程!

标签:webpack5,vue,babel,09,插件,Babel,Vue,Vue3,我们
来源: https://blog.csdn.net/weixin_50903927/article/details/122800445