Babel默认只是转换新的语法(简单转换语法糖),如箭头函数等,但不会转换新的API,如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法,例如Object.assign,因此我们需要polyfill
备注:polyfill,一个js库
因为其是一个js库,因此需要在源代码最前面导入运行,且得成为上线依赖dependency,而不仅仅是一个开发依赖devDependency
 
.babelrc写法
旧版 
"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

最新文章

  1. 使用pyinstaller打包Python应用,生成EXE执行文件
  2. ichart.js绘制虚线 ,平均分虚线
  3. 【bzoj2631】tree link-cut-tree
  4. 如何把项目部署到OSChina上
  5. Java编程思想学习(一) 一切都是对象
  6. DevExpress所有的窗体,使用同一款皮肤
  7. android ListView_显示数据库数据
  8. Poj 2586 / OpenJudge 2586 Y2K Accounting Bug
  9. Linux强制踢出登录用户(断线账户剔除)
  10. JavaScript基础(一)
  11. DataTables获取表单输入框数据
  12. paip.jdk1.4 1.5(5.0) 1.6(6.0) 7.0 8.0特点比较与不同
  13. SQL Server 远程链接服务器详细配置
  14. 竞品调研时发现的Android新设计特性
  15. SQL Server Integration Services SSIS最佳实践
  16. unitest框架--认识与基本使用
  17. 【java】对象赋值给另一个对象
  18. 牌型种数|2015年蓝桥杯B组题解析第七题-fishers
  19. HttpServletRequest解决中文乱码的问题
  20. python 结构化数据解析

热门文章

  1. BZOJ2523/LOJ2646 聪明的学生
  2. Oracle 中select XX_id_seq.nextval from dual 什么意思呢?
  3. js Date对象和数字对象
  4. linux sed 批量替换文件中的字符串或符号
  5. Python的私有变量与装饰器@property的用法
  6. DockerToolbox安装docker - Windows 10家庭版
  7. H5利用formData来上传文件(包括图片,doc,pdf等各种格式)方法小结!
  8. 过滤器的API
  9. 利用vue-meta管理头部标签
  10. touchz,mkdir,vi的区别