babel
是将webpack和babel搭建一个中间的桥梁,将ES6转为ES5需要其他依赖包。babel/core能识别js内容,将js转换为AST抽象语法树,再把AST抽象语法树转为js
1 | # npm install --save-dev babel-loader @babel/core |
preset-env
将ES6转为ES5的依赖包
1 | # npm install @babel/preset-env --save-dev |
polyfill
preset-env只是将部分语法转为ES5,但是有些语法如Promise、map在低版本还是不存在的,需要进一步转化
1 | # npm install --save @babel/polyfill |
指定浏览器运行的版本
假如知道了浏览器的运行版本,就不需要兼容所有浏览器了,可以减少打包的代码量
1 | // .babelrc |
工具库项目优化-transform-runtime
针对业务项目打包是没问题的。但是工具类的项目打包,不能让polyfill打包后的污染全局环境
1 | # npm install --save-dev @babel/plugin-transform-runtime |