首先,vue-cli 为我们自动添加了 babel-plugin-transform-runtime 这个插件,该插件多数情况下都运作正常,可以转换大部分 ES6 语法。

  但是,存在如下两个问题:

  1. 异步加载组件时,会产生 polyfill 代码冗余
  2. 不支持对全局函数与实例方法的 polyfill

  两个问题的原因均归因于 babel-plugin-transform-runtime 采用了沙箱机制来编译我们的代码(即:不修改宿主环境的内置对象)。

  由于异步组件最终会被编译为一个单独的文件,所以即使多个组件中使用了同一个新特性(例如:Object.keys()),那么在每个编译后的文件中都会有一份该新特性的 polyfill 拷贝。如果项目较小可以考虑不使用异步加载,但是首屏的压力会比较大。

  不支持全局函数(如:PromiseSetMap),Set 跟 Map 这两种数据结构应该大家用的也不多,影响较小。但是 Promise 影响可能就比较大了。

  不支持实例方法(如:'abc'.includes('b')['1', '2', '3'].find((n) => n < 2) 等等),这个限制几乎废掉了大部分字符串和一半左右数组的新特性。

一般情况下 babel-plugin-transform-runtime 能满足大部分的需求,当不满足需求时,推荐使用完整的 babel-polyfill

替换 babel-polyfill

  首先,从项目中移除 babel-plugin-transform-runtime
  卸载该依赖:

npm un babel-plugin-transform-runtime -D

  修改 babel 配置文件

// .babelrc
{//..."plugins": [// - "transform-runtime"]//...
}

  然后,安装 babel-polyfill 依赖:

npm i babel-polyfill -D

  最后,在入口文件中导入

// src/main.js
import 'babel-polyfill'

polyfill 与 transform-runtime相关推荐

  1. metro-Configuration

    目录 配置结构 通用配置 cacheStores cacheVersion projectRoot watchFolders transformerPath watch reporter resetC ...

  2. 从零开始搭建一个react项目

    Nav logo 120 发现 关注 消息 4 搜索 从零开始搭建一个react项目 96 瘦人假噜噜 2017.04.23 23:29* 字数 6330 阅读 32892评论 31喜欢 36 项目地 ...

  3. 原来不只是fastjson,这个你每天都在用的类库也被爆过反序列化漏洞!

    在<fastjson到底做错了什么?为什么会被频繁爆出漏洞?>文章中,我从技术角度分析过为什么fastjson会被频繁爆出一些安全漏洞,然后有人在评论区发表"说到底就是fastj ...

  4. dual mysql 获取序列_MySQL JDBC客户端反序列化漏洞

    标题: MySQL JDBC客户端反序列化漏洞 ☆ 背景介绍☆ 学习思路☆ 搭建测试环境☆ 恶意MySQL插件 1) 获取MySQL 5.7.28源码 2) 在rewrite_example基础上修改 ...

  5. CommonCollection1反序列化链学习

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  6. uni-app 2.2 发布,大幅度优化 H5 端性能体验 | 技术头条

    作者 | uni-app团队 责编 | 伍杏玲 uni-app 自发布以来,已经服务了几十万开发者.但让我们意外,有大量开发者用uni-app只编写H5版,并没有多端发布. 这其实也符合uni-app ...

  7. 【笔记整理】vue.js笔记

    ### 准备开始          1:主要学习的是VUE,快速进入VUE让大家体会VUE的使用     2:webpack前端构建构建,前期铺垫基本使用,后面看到不晕     3:在做完项目以后,模 ...

  8. Webpack4+Babel7+ES6兼容IE8

    前阵子重构了一个挺有意思的项目,是一个基于浏览器环境的数据采集sdk.公司各个产品的前端页面中都嵌入了这个sdk,用于采集用户的行为数据,上传到公司的大数据平台,为后续的运营决策分析提供数据支撑. 笔 ...

  9. CTF Web方向考点总结

    CTF Web 0X00 前言 做题已经快四个月了,接触了大大小小的题型,收藏的大师傅们的解题思路.题型总结的博客已经很多了,每次都要一个一个翻很麻烦,于是写下了这一个总结,实际上是把各大博客内容汇总 ...

  10. Java Apache Commons Collection3.2.1 理解Transformer 接口

    Java Apache Commons Collection3.2.1 理解Transformer 接口 引言 Transformer 接口 InvokerTransformer MapTransfo ...

最新文章

  1. 读《每天懂一点成功概率学》
  2. linux .sh文件 命令如何写,Linux下面使用命令如何运行.sh文件的两种解决办法
  3. js mysql 住宿系统_[源码和文档分享]基于JavaScript和MySQL实现的酒店管理系统
  4. 实现基于注解(Annotation)的数据库框架(三)自定义注解(Annotation)
  5. GPU Gems2 - 10 动态辐照度环境映射实时计算
  6. Play框架的用户验证。
  7. 不懂 ZooKeeper?没关系,这一篇给你讲的明明白白
  8. shell脚本检查进程脚本
  9. 计算机中复合模板在哪,冷冲模CAD系统中装配模板的设计与复合算法研究-计算机软件专业论文.docx...
  10. Javascript归并排序
  11. 变量 重复声明_JS:定义变量的var、let有何操作?(360°无死角)
  12. 将class文件反编译成java文件-(纯实际操作)
  13. Win7英文版打补丁遇到的问题汇总
  14. Spring项目中自定义注解的使用
  15. hive ddl语法使用详解
  16. 一颗种子,一颗小树苗 在快速生长长大的过程中,遇到风雨在所难免
  17. C89和C99标准对比
  18. 腾讯视频采集规则+发布模块(基于火车头全站采集与发布站点教程)
  19. 开源一文多发平台ArtiPub,让文章随处可阅
  20. Math.log()是以常数e为底数的对数

热门文章

  1. 机器学习中的两个概率模型
  2. NSUserDefaults 的用法
  3. javascript时间差工具包
  4. POJ 2584 T-Shirt Gumbo 构图 最大流
  5. 单选框,下拉菜单美化
  6. HDU1061 Rightmost Digit【快速模幂】
  7. 可视化 —— 在线图形绘制
  8. 经典书单 —— 机器学习/深度学习/AI/CV/PGM
  9. 【脑筋急转弯】—— 谁是诚实人?
  10. 对角矩阵(diagonal matrix)