为了账号安全,请及时绑定邮箱和手机立即绑定

如何让babel-polyfill按需加载?

如何让babel-polyfill按需加载?

郎朗坤 2019-05-11 15:53:03
babel-polyfill可以让我们愉快的使用浏览器不兼容的es6、es7的API,但往往项目中只会用到这些API的一部分,一个babel-polyfill压缩后也有近100k的大小,这确实很恐怖。比如我希望项目里用到Promise,打包时只加载Promise的部分代码,而非整个polyfill。如何能让babel-polyfill按需加载呢?
查看完整描述

2 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

babel7的@babel/preset-env的useBuiltsIns提供了相对比较完美的解决方案:
useBuiltIns默认为false根据browserlist是否转换新语法与polyfill新API
false:不启用polyfill,如果import'@babel/polyfill',会无视browserlist将所有的polyfill加载进来
entry:启用,需要手动import'@babel/polyfill',这样会根据browserlist过滤出需要的polyfill
usage:不需要手动import'@babel/polyfill'(加上也无妨,构造时会去掉),且会根据browserlist+业务代码使用到的新API按需进行polyfill
                            
查看完整回答
反对 回复 2019-05-11
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

类似如下方式方式1
constPromise=require('babel-runtime/core-js/promise')
方式2
import'core-js/es6/promise'
上面两种方式的区别,第一种是模块内引入,而第二种是全局的,你可以根据需求选择合理的方式。
youcanactuallypullinonlythepolyfillsyouarecurrentlyusingorwanttouseusingcore-js.Soinsteadofpullinginbabel-polyfillintoourapp参考说明链接
                            
查看完整回答
反对 回复 2019-05-11
  • 2 回答
  • 0 关注
  • 1253 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号