babelrc笔记
2024-09-01 12:28:19
Babel默认只是转换新的语法(简单转换语法糖),如箭头函数等,但不会转换新的API,如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法,例如Object.assign,因此我们需要polyfill
备注:polyfill,一个js库
因为其是一个js库,因此需要在源代码最前面导入运行,且得成为上线依赖dependency,而不仅仅是一个开发依赖devDependency
备注:polyfill,一个js库
因为其是一个js库,因此需要在源代码最前面导入运行,且得成为上线依赖dependency,而不仅仅是一个开发依赖devDependency
.babelrc写法
旧版
"presets": ["es2015"] //简写,意思是babel-preset-es2015
旧版
"presets": ["es2015"] //简写,意思是babel-preset-es2015
"pulgins": ["transform-runtime"] //简写,意思是babel-plugin-transform-runtime
而在新版
"presets": ["@babel/preset-es2016"] //新版本的babel预设,插件都得写完整名称
"presets": ["@babel/plugin-transform-runtime"] //新版本的插件,插件都得写完整名称
兼容语法糖
使用预设
babel-preset-es2015
babel-preset-es2016
babel-preset-es2017
每年都出新的规范(语法糖),于是每年出一款针对此年变化的预设
而babel-preset-env包含所有预设,能兼容所有语法糖
关于babel-preset-env的配置,可写在.babelrc,package.json中可写一部分(例如browsersList),甚至webpack.config.js里都能写,但这几个地方分优先级,.babelrc优先级最好,为了统一,最好都写在.babelrc。
browserList的写法,可见:https://juejin.im/post/5b8cff326fb9a019fd1474d6
兼容api
使用插件
babel-polyfill
为全局变量添加方法,会污染全局环境
babel-pulgin-transform-runtime 建议开发依赖
babel-runtime 建议线上依赖
可见:https://babeljs.io/docs/en/babel-plugin-transform-runtime
最新文章
- 使用pyinstaller打包Python应用,生成EXE执行文件
- ichart.js绘制虚线 ,平均分虚线
- 【bzoj2631】tree link-cut-tree
- 如何把项目部署到OSChina上
- Java编程思想学习(一) 一切都是对象
- DevExpress所有的窗体,使用同一款皮肤
- android ListView_显示数据库数据
- Poj 2586 / OpenJudge 2586 Y2K Accounting Bug
- Linux强制踢出登录用户(断线账户剔除)
- JavaScript基础(一)
- DataTables获取表单输入框数据
- paip.jdk1.4 1.5(5.0) 1.6(6.0) 7.0 8.0特点比较与不同
- SQL Server 远程链接服务器详细配置
- 竞品调研时发现的Android新设计特性
- SQL Server Integration Services SSIS最佳实践
- unitest框架--认识与基本使用
- 【java】对象赋值给另一个对象
- 牌型种数|2015年蓝桥杯B组题解析第七题-fishers
- HttpServletRequest解决中文乱码的问题
- python 结构化数据解析
热门文章
- BZOJ2523/LOJ2646 聪明的学生
- Oracle 中select XX_id_seq.nextval from dual 什么意思呢?
- js Date对象和数字对象
- linux sed 批量替换文件中的字符串或符号
- Python的私有变量与装饰器@property的用法
- DockerToolbox安装docker - Windows 10家庭版
- H5利用formData来上传文件(包括图片,doc,pdf等各种格式)方法小结!
- 过滤器的API
- 利用vue-meta管理头部标签
- touchz,mkdir,vi的区别