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

Webpack5 系列:Babel 的配置

1.前言

本篇将介绍对于项目中 JS 文件的处理。

2.babel-loader

2-1.依赖安装

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

2-2.Loader 配置

webpack.config.js

module: {rules: [{test: /\.?js$/,exclude: /node_modules/,use: {loader: 'babel-loader'}}]
}

对于 babel 的配置,我们一般放在 babel.config.json 中,在根目录中新建 babel.config.json。

3.Babel 的配置

3-1.一般情况下的babel配置

babel.config.json

{"presets": [["@babel/preset-env", {"useBuiltIns": "usage", // 按需引入 corejs 中的模块 "corejs": 3, // 核心 js 版本"targets": "> 0.25%, not dead" // 浏览器支持范围}]]
}

还需要下载的依赖:

npm i core-js@3 --save

注意: 必须要配置 useBuiltIns,如果不配置,babel 将不会处理 Promise、Map、Set、Symbol 等全局对象;corejs 也要同时配置,2 的版本可以处理全局对象,但实例方法并不处理,所以这里用 3 的版本。

3-2.最佳的 babel 配置

如果在写一个库时,最好添加上插件 —— babel/plugin-transform-runtime,配置如下:

{"presets": [["@babel/preset-env", {"targets": "> 0.25%, not dead"}]],"plugins": [// 不污染全局,在运行时加载["@babel/plugin-transform-runtime", {"corejs": 3}]]
}

还需要下载的依赖:

npm install --save-dev @babel/plugin-transform-runtime
npm install --save @babel/runtime
npm install --save @babel/runtime-corejs3

@babel/preset-env just transforms code with syntax, if we don’t config useBuiltIns.
@babel/transform-runtime can provide re-use helpers, but don’t polyfill by default.
Most situation best config: use @babel/preset-env transforms syntax. use @babel/transform-runtime avoid duplicate code, and config corejs: 3 to polyfill.

http://www.lryc.cn/news/213294.html

相关文章:

  • 【Spring】DI依赖注入,Lombok以及SpEL
  • 甘特图组件DHTMLX Gantt用例 - 如何自定义任务、月标记和网格新外观
  • auto自动类型推导总结
  • 透视2023,如何看清中国SaaS的未来之路?
  • 分类预测 | Matlab实现KOA-CNN-LSTM-selfAttention多特征分类预测(自注意力机制)
  • 博客系统-项目测试
  • Inspeckage,动态分析安卓 APP 的 Xposed 模块
  • Windows详细安装和彻底删除RabbitMQ图文流程
  • 自定义表单规则
  • Spring 中 Bean 的作用域有哪些?Spring 中有哪些方式可以把 Bean 注入到 IOC 容器?
  • 【01低功耗蓝牙开发】
  • 【Java 进阶篇】Java BeanUtils 使用详解
  • YugaByteDB -- 全新的 “PostgreSQL“ 存储层
  • 众佰诚:抖音上做生意卖什么好
  • 【Redis】环境配置
  • 设计交换机原理图前应先理清的框图
  • Bellman-ford 贝尔曼-福特算法
  • Docker数据目录迁移解决方案
  • 公共字段自动填充、菜品管理
  • 前端面试 面试多起来了
  • Qt常见类名关系整理
  • YOLO8实战:yolov8实现行人跟踪计数
  • shell脚本学习-2
  • web3:智能合约浏览器版本的 IDE - remix 使用教程
  • 信号类型(通信)——QPSK、OQPSK、IJF_OQPSK调制信号
  • 常用压缩文件操作函数总结
  • leetcode_274 H指数
  • 微服务框架Consul--新手入门
  • docker运行syslog-ng,搭建日志服务器
  • Redis代替session实现用户验证