polyfill 与 transform-runtime
首先,vue-cli
为我们自动添加了 babel-plugin-transform-runtime
这个插件,该插件多数情况下都运作正常,可以转换大部分 ES6
语法。
但是,存在如下两个问题:
- 异步加载组件时,会产生
polyfill
代码冗余 - 不支持对全局函数与实例方法的
polyfill
两个问题的原因均归因于 babel-plugin-transform-runtime
采用了沙箱机制来编译我们的代码(即:不修改宿主环境的内置对象)。
由于异步组件最终会被编译为一个单独的文件,所以即使多个组件中使用了同一个新特性(例如:Object.keys()
),那么在每个编译后的文件中都会有一份该新特性的 polyfill
拷贝。如果项目较小可以考虑不使用异步加载,但是首屏的压力会比较大。
不支持全局函数(如:Promise
、Set
、Map
),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相关推荐
- metro-Configuration
目录 配置结构 通用配置 cacheStores cacheVersion projectRoot watchFolders transformerPath watch reporter resetC ...
- 从零开始搭建一个react项目
Nav logo 120 发现 关注 消息 4 搜索 从零开始搭建一个react项目 96 瘦人假噜噜 2017.04.23 23:29* 字数 6330 阅读 32892评论 31喜欢 36 项目地 ...
- 原来不只是fastjson,这个你每天都在用的类库也被爆过反序列化漏洞!
在<fastjson到底做错了什么?为什么会被频繁爆出漏洞?>文章中,我从技术角度分析过为什么fastjson会被频繁爆出一些安全漏洞,然后有人在评论区发表"说到底就是fastj ...
- dual mysql 获取序列_MySQL JDBC客户端反序列化漏洞
标题: MySQL JDBC客户端反序列化漏洞 ☆ 背景介绍☆ 学习思路☆ 搭建测试环境☆ 恶意MySQL插件 1) 获取MySQL 5.7.28源码 2) 在rewrite_example基础上修改 ...
- CommonCollection1反序列化链学习
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- uni-app 2.2 发布,大幅度优化 H5 端性能体验 | 技术头条
作者 | uni-app团队 责编 | 伍杏玲 uni-app 自发布以来,已经服务了几十万开发者.但让我们意外,有大量开发者用uni-app只编写H5版,并没有多端发布. 这其实也符合uni-app ...
- 【笔记整理】vue.js笔记
### 准备开始 1:主要学习的是VUE,快速进入VUE让大家体会VUE的使用 2:webpack前端构建构建,前期铺垫基本使用,后面看到不晕 3:在做完项目以后,模 ...
- Webpack4+Babel7+ES6兼容IE8
前阵子重构了一个挺有意思的项目,是一个基于浏览器环境的数据采集sdk.公司各个产品的前端页面中都嵌入了这个sdk,用于采集用户的行为数据,上传到公司的大数据平台,为后续的运营决策分析提供数据支撑. 笔 ...
- CTF Web方向考点总结
CTF Web 0X00 前言 做题已经快四个月了,接触了大大小小的题型,收藏的大师傅们的解题思路.题型总结的博客已经很多了,每次都要一个一个翻很麻烦,于是写下了这一个总结,实际上是把各大博客内容汇总 ...
- Java Apache Commons Collection3.2.1 理解Transformer 接口
Java Apache Commons Collection3.2.1 理解Transformer 接口 引言 Transformer 接口 InvokerTransformer MapTransfo ...
最新文章
- 读《每天懂一点成功概率学》
- linux .sh文件 命令如何写,Linux下面使用命令如何运行.sh文件的两种解决办法
- js mysql 住宿系统_[源码和文档分享]基于JavaScript和MySQL实现的酒店管理系统
- 实现基于注解(Annotation)的数据库框架(三)自定义注解(Annotation)
- GPU Gems2 - 10 动态辐照度环境映射实时计算
- Play框架的用户验证。
- 不懂 ZooKeeper?没关系,这一篇给你讲的明明白白
- shell脚本检查进程脚本
- 计算机中复合模板在哪,冷冲模CAD系统中装配模板的设计与复合算法研究-计算机软件专业论文.docx...
- Javascript归并排序
- 变量 重复声明_JS:定义变量的var、let有何操作?(360°无死角)
- 将class文件反编译成java文件-(纯实际操作)
- Win7英文版打补丁遇到的问题汇总
- Spring项目中自定义注解的使用
- hive ddl语法使用详解
- 一颗种子,一颗小树苗 在快速生长长大的过程中,遇到风雨在所难免
- C89和C99标准对比
- 腾讯视频采集规则+发布模块(基于火车头全站采集与发布站点教程)
- 开源一文多发平台ArtiPub,让文章随处可阅
- Math.log()是以常数e为底数的对数