当前位置: 首页 > news >正文

bable-预设

babel 有多种预设,最常见的预设是 @babel/preset-env,它可以让你使用最新的 JS 语法,而无需针对每种语法转换设置具体的插件。

@babel/preset-env 预设

安装

npm i -D @babel/preset-env

配置

.babelrc 文件

在根目录下新建 .babelrc 文件,并设置以下内容:

{"presets": ["@babel/preset-env"]
}

兼容浏览器

@babel/preset-env 需要根据兼容的浏览器范围来确定如何编译,和 postcss 一样,可以使用文件 .browserslistrc 来描述浏览器的兼容范围。

在根目录下新建 .browserslistrc 文件,并设置以下内容:

last 3 version
> 1%
not ie <= 8

它的书写规范多而繁琐,详情见:https://github.com/browserslist/browserslist

预设的配置

postcss-preset-env 一样, @babel/preset-env 自身也有一些配置,具体的配置见:https://www.babeljs.cn/docs/babel-preset-env#options

{"presets": [["@babel/preset-env", {"配置项1": "配置值","配置项2": "配置值","配置项3": "配置值"}]]
}

其中一个比较常见的配置项是 usebuiltins,该配置的默认值是 false,它有什么用呢?由于该预设仅转换新的语法,并不对新的 API 进行任何处理。

例如:

new Promise(resolve => {resolve()
})

转换的结果为

new Promise(function (resolve) {resolve();
});

如果遇到没有 Promise 构造函数的旧版本浏览器,该代码就会报错,而配置 usebuiltins 可以在编译结果中注入这些新的 API,它的值默认为 false ,表示不注入任何新的 API,可以将其设置为 usage,表示根据 API 的使用情况,按需导入 API。

{"presets": [["@babel/preset-env", {"useBuiltIns": "usage","corejs": 3}]]
}
http://www.lryc.cn/news/531404.html

相关文章:

  • 回顾生化之父三上真司的游戏思想
  • 无公网IP 外网访问青龙面板
  • 中国证券基本知识汇总
  • C基础寒假练习(2)
  • Baklib如何提升内容中台智能化推荐系统的精准服务与用户体验
  • 【Java】位图 布隆过滤器
  • 【专业标题】数字时代的影像保卫战:照片误删拯救全指南
  • 深度剖析八大排序算法
  • JVM_程序计数器的作用、特点、线程私有、本地方法的概述
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.20 傅里叶变换:从时域到频域的算法实现
  • PAT甲级1052、Linked LIst Sorting
  • git error: invalid path
  • 优选算法合集————双指针(专题二)
  • Ubuntu下Tkinter绑定数字小键盘上的回车键(PySide6类似)
  • 使用arcpy列表函数
  • 基于联合概率密度与深度优化的反潜航空深弹命中概率模型研究摘要
  • 【PyQt】pyqt小案例实现简易文本编辑器
  • 二叉树03(数据结构初阶)
  • ComfyUI工作流 图像反推生成人像手办人像参考(SDXL版)
  • 【01】共识机制
  • sentinel的限流原理
  • ZOJ 1007 Numerical Summation of a Series
  • 『 C 』 `##` 在 C 语言宏定义中的作用解析
  • 独立成分分析 (ICA):用于信号分离或降维
  • 为什么会有函数调用参数带标签的写法?Swift函数调用的参数传递需要加前缀是否是冗余?函数调用?函数参数?
  • 实际操作 检测缺陷刀片
  • 使用Pygame制作“青蛙过河”游戏
  • BUU17 [RoarCTF 2019]Easy Calc1
  • 堆的实现——对的应用(堆排序)
  • 新生讲课——图和并查集