首页 > 其他分享 >webpack4.0核心概念(十一)———— babel

webpack4.0核心概念(十一)———— babel

时间:2023-03-27 15:00:55浏览次数:47  
标签:十一 babel webpack4.0 js preset env polyfill loader


官⽅⽹站: https://babeljs.io/

中⽂⽹站: https://www.babeljs.cn/


Babel是JavaScript编译器,能将ES6代码转换成ES5代码,让我们开发过程中放⼼使⽤JS新特性⽽不⽤担⼼兼容性问题。并且还可以通过插件机制根据需求灵活的扩展。

Babel在执⾏编译的过程中,会从项⽬根⽬录下的 .babelrc JSON⽂件中读取配置。没有该⽂件会从 loader的options地⽅读取配置。

  • ·语法转换

            const ——> var

             ()=>{} ——> function(){}

  • api 处理 

           api: Promise symbol proxy实例方法:[].find。

            解决方案:就是在目标环境中添加缺失的特性

babel配置文件,有以下几种

webpack4.0核心概念(十一)———— babel_新特性

安装 

npm i babel-loader @babel/core @babel/preset-env -D

1.babel-loader是webpack 与 babel的通信桥梁,不会做把es6转成es5的⼯作,这部分⼯作需要⽤到 @babel/preset-env来做

2.@babel/preset-env⾥包含了es,6,7,8转es5的转换规则

3.@babel 是一个组织

配置

webpack.config.js

module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader",
          options: {
            presets: ["@babel/preset-env"]   //预设插件(语法解析插件)
          }
        }
      }
    ],
 },

babel经过上面的配置,通过上⾯的⼏步 还不够,默认的Babel只⽀持let等⼀些基础的特性转换,Promise等⼀些还有转换过


来,这时候需要借助@babel/polyfill,把es的新特性都装进来,来弥补低版本浏览器中缺失的特性



@babel/polyfill



以全局变量的⽅式注⼊进来的。 windows.Promise ,它会造成全局对象的污染



npm install --save @babel/polyfill



//main.js 顶部
import "@babel/polyfill";

 polyfill的相关设置

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          //目标环境
          "edge": "17",
          "firefox": "60",
          "chrome": "67",
          "safari": "11"
        },
        "corejs": 3, //核心库的版本   3的话需要手动安装   npm i core-js@3 -S
        "useBuiltIns": "usage"//按需加载
      }
    ],
    "@babel/preset-react"
  ]
}

设置【"useBuiltIns": "usage"】,就不需要在入口js里面设置下面的东西了

//设置【"useBuiltIns": "usage"】,就不需要在入口js里面设置下面的东西了

//main.js 顶部
import "@babel/polyfill";


使用.babelrc文件配置babel时,应如下图调整。更加清爽

webpack4.0核心概念(十一)———— babel_babel_02

webpack4.0核心概念(十一)———— babel_新特性_03

标签:十一,babel,webpack4.0,js,preset,env,polyfill,loader
From: https://blog.51cto.com/u_16000296/6152146

相关文章

  • Mybatis源码(十一):Mybatis与Spring的整合
    一、搭建mybtais-spring运行环境1、创建数据表并初始化CREATETABLE`user`(`id`int(8)NOTNULLAUTO_INCREMENTCOMMENT'主键',`name`varchar(32)CHARACTE......
  • 求完数(第十一届 省赛 T2)
     题目:    那么题目里面有需要求因数之和的程序,那么我们先来写一个求因数之和的程序:intw(intk){intans=0;for(inti=1;i*i<=k;i++){......
  • IM开发者的零基础通信技术入门(十一):为什么WiFi信号差?一文即懂!
    一、本文内容概述WiFi对于现在的家庭来说,属于司空见惯的上网方式,但很多情况下,家里房间多、空间大、杂物乱的情况下,WiFi的信号就受影响。为什么WiFi信号会受影响?什么情况下......
  • Python——面向对象编程(十一)
    1.对象的封装#coding=utf-8#对象的封装#类的概念"""类的名字:当名字由多个单词构成时,我们采用驼峰命名法就是说多个单词,每个单词的首字母需要大写这也是python的......
  • CTF第十一天 binwalk stegsolve
    标题a_good_idea原理图片隐写目的获取完整图片中的flag环境kali/windows工具binwalk   stegsolve步骤首先在kali中对图片进行文件提取提取后得到一个文件夹把......
  • C++温故补缺(十一):异常
    异常处理参考:cnblogs异常和错误(bug)异常:是程序开发过程中必须考虑的一些特殊情况,是程序运行时可以预料的执行分支。异常是不可以避免的,如0除问题,数组越界问题,文件不存在......
  • [算法课]全面翻新计划!第十一周全解
    文章目录​​上课内容​​​​贪心法​​​​例1兑换货币​​​​颜老板代码​​​​更新版​​​​测试数据​​​​博主提示:​​​​注意:​​​​贪心算法的思路:​​​​......
  • (二十一)桥接模式
    1.概述合成/聚合复用原则(CARP),尽量使用合成/聚合,尽量不要使用类继承。合成(Composition,也有翻译成组合)和聚合(Aggregation)都是关联的特殊种类。聚合表示一种弱的“拥有”关......
  • Power BI 实现未来几年天猫双十一销售额预测
    我们用PowerBI实现未来几年天猫双十一销售额预测,基于三次方程进行训练和预测。三次方程的公式如下:1. 2022年双十一预测值分布图基于三次方程预测2022年双十一销售额为73......
  • #yyds干货盘点#对于babel的一些理解
    Babel是一个JavaScript编译器Babel是一个工具链,主要用于将采用ECMAScript2015+语法编写的代码转换为向后兼容的JavaScript语法,以便能够运行在当前和旧版本的浏览器......