Babel的使用

Posted coder斌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Babel的使用相关的知识,希望对你有一定的参考价值。

Babel的认识和介绍

  • Babel可以说是一个转换器,可以可以将一种代码转换成另一种代码。
  • 如 TypeScript ===> javascript
  • 有些浏览器对某些ES6的语法并不支持,babel可以将其转换成ES5

Babe在命令行使用的plugin和preset

plugin插件

安装npm install @babel/core @babel/cli -g这里是全局安装的,但我演示的时候用的是局部安装的。

不同的部分需要用不同的plugins,箭头函数需要箭头函数对应的pluginconst也有其对应的plugin

  • 箭头函数对应 plugin npm install @babel/plugin-transform-arrow-functions

image-20210612190335465

  • 块级作用域 const 对应plugin npm install @babel/plugin-transform-block-scoping

  • 多个plugin一起使用。

image-20210612191057166

preset预设

若是我们每个方面就要下载一个plugin并且配置引用,那么开发效率非常低下,那么可以使用预设(preset)。

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

使用

image-20210612195731255

Babel的原理解析

Babel可以说是一个转换器,工作流程可以分为 : 解析阶段 ==>>>转化阶段 ===>>> 生成阶段

image-20210612193903339

Babel-loader的使用和配置文件

安装npm install babel-loader -D

webpack.config.js配置

image-20210612195003368

同上一样可以使用预设(preset)

image-20210612200459623

配置文件

babel是可以单独得配置文件的,webpack.config.js内还是要加上babel-loader

预设写法

image-20210612200850211

插件写法

image-20210612201024673

Webpack中Vue代码的打包

基本打包

安装Vuenpm install vue -D

image-20210612202257076

  • 然后打包命令打包,浏览器打开,我们发现template内的内容是渲染不出来的

  • 其实我们下载 vue 时下载的并不是只有一个版本。

    • vue(.runtime).esm-brower.js原生模块导入使用(script标签内加 type="module"
    • vue(.runtime).global.js浏览器script直接使用,CDN下载和引用就是这个
    • vue(.runtime).bundler.jswebpack等构建工具内使用,若需要解析模板template那么s需指定用vue.esm-bundler.js
    • vue.cjs(.prod).js在浏览器端使用。
  • 有无(runtime)的区别是,是否需要编译templateruntime:只有运行,runtime-compiler:运行时编译。

  • 所以要使上方的template渲染出来需要指定引入的js文件

image-20210612203701903

webpack对SFC文件的支持

我们在开发时并不是使用template手动写标签字符串,而是运用 .vue的文件。

那么在webpack中如何打包 .vue文件呢?

安装npm install vue-loader@next -D 加载 .vue 文件

安装npm install @vue/compiler-sfc -D 编译template模板

导入 VueLoaderPlugin插件从vue-loader内,这样可以帮我们自动使用@vue/compiler-sfc

image-20210612211352474

Global Feature Flags的配置

  • __VUE_OPTIONS_API__:vue3的代码兼容了option API 和 composition API,当我们只是用了 composition API,那么我们就可以裁减掉option API的代码。
  • __VUE_PROD_DEVTOOLS__:Production模式下是否支持devtools工具;

image-20210612211605398

以上是关于Babel的使用的主要内容,如果未能解决你的问题,请参考以下文章

Babel 入门

babel实践

Babel概述及使用

React项目实践——babel

gulp-babel使用

babel的 使用,和安装配置