transfrom-runtime文档
transfrom-runtime文档
babel只会默认对句法进行转换,而那些方法,api不会转换,要转就要使用polyfill和transform,这里介绍transform,关于polyfill请看我的polyfill文章
- 简介
-用来抽取helpers和builtins,自动导入到你的代码中,没有全局污染
-注意:实例的方法比如 "foobar".includes("foo")不会生效,因为这会修改现有的built-ins(解决这种情况,请使用babel-polyfill)
- 为什么要使用Runtime transform
babel使用一些小的helpers如_extend来处理传统的函数,(也就是说function fn(){}这样的函数经过babel也会转码,而且转
出一大坨子代码),这个helpers会被添加到每一个需要它的文件,这种重复有时是不必要的,特别是在你的应用分布于多个文件里
面,这就是为什么需要transform-runtime插件了,因为使用这个插件,所有的helpers都会被提取到babel-runtime模块中从而
避免重复的代码出现在编译后的文件里面,这个被提取的runtime将会编译到你的项目中
这个插件的另外一个作用就是能够为你的代码创建一个沙箱环境,如果你使用babel-polyfill当处理这些全局函数如Promise,
Set和Map,编译后的结果会污染整个全局环境,会生成很多built-ins,这种情况在你自己写代码可能影响不大,但是当你把代码
给别人使用或者你不确定你的代码的运行环境时,这时就出现问题了,那么这个插件就会对这些built-ins起个别名放在core-js
里面,所以可以使用这些全局的方法不需要导入polyfill
- 安装
开发版本 npm install --save-dev babel-plugin-transform-runtime
生成版本 npm install --save babel-runtime
- 使用
配置文件中
{
"plugins": [
["transform-runtime",{
"helpers": false,
"polyfill": false,
"regenerator": true,
"moduleName": "babel-runtime"
}]
]
}
上边传递的options中的参数默认都是true,不需要设置,因为这些都是这个插件的特点
- 结语
怕你们还是不懂,多说两句,你可以什么都不用管,在项目中直接使用
{
"plugins": [
"transform-runtime"
]
}
但是你要清楚,这个插件有缺点有优点
优点是
1.解决babel处理函数时生成的多余代码,这个插件把这些代码提取到它自己的helper模块中
2.解决全局函数的全局污染,因为全局函数需要单独生成实现函数本身功能的特定代码,要把这部分代码提取到插件的core-js模块中
缺点是
1.无法解决实例的方法,实例的方法需要借助polyfill
transfrom-runtime文档的更多相关文章
- 4、runtime电源管理模式(内核文档runtime_pm.txt有详细描述)
系统睡眠模型是让整个系统休眠,而runtime是在系统正常工作的时候单独控制某个设备休眠和唤醒 1. runtime PM流程怎样动态地打开或关闭设备的电源?最简单的方法:在驱动程序里,在open函数 ...
- Kooboo CMS技术文档之一:Kooboo CMS技术背景
语言平台 依赖注入方案 存储模型 1. 语言平台 Kooboo CMS基于.NET Framework 4.x,.NET Framework 4.x的一些技术特性成为站点开发人员使用Kooboo CM ...
- 获取打开的Word文档
using Word = Microsoft.Office.Interop.Word; int _getApplicationErrorCount=0; bool _isMsOffice = true ...
- 使用 Swagger 自动生成 ASP.NET Core Web API 的文档、在线帮助测试文档(ASP.NET Core Web API 自动生成文档)
对于开发人员来说,构建一个消费应用程序时去了解各种各样的 API 是一个巨大的挑战.在你的 Web API 项目中使用 Swagger 的 .NET Core 封装 Swashbuckle 可以帮助你 ...
- ASP.NET Core 中文文档 第二章 指南 (09) 使用 Swagger 生成 ASP.NET Web API 在线帮助测试文档
原文:ASP.NET Web API Help Pages using Swagger 作者:Shayne Boyer 翻译:谢炀(kiler) 翻译:许登洋(Seay) 对于开发人员来说,构建一个消 ...
- 『.NET Core CLI工具文档』(十一)dotnet-test
说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:dotnet-test 翻译:dotnet-test 名称 dotnet-test - 使用配置的测试运行器运行单元测试 ...
- Google C++单元测试框架GoogleTest---GMock的CheatSheet文档
CheatSheet文档中包含了GMock所有常用的东西,看了这个基本上就可以用它了,本文接上篇博文:Google C++单元测试框架GoogleTest---Google Mock简介--概念及基础 ...
- Java实现office文档与pdf文档的在线预览功能
最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...
- 编译OpenCV文档
概述 使用OpenCV的过程中经常查看文档,每次都去官网查看,不过国内访问速度很慢,有一份本地的文档就好了.本文列出了在Linux(Fedora)系统上从OpenCV源码编译出documentatio ...
- Spring Boot文档阅读
原因之初 最初习惯百度各种博客教程,然后跟着操作,因为觉得跟着别人走过的路走可以少走很多弯路,省时间.然而,很多博客的内容并不够完整,甚至错误,看多了的博客甚至有千篇一律的感觉.此外,博客毕竟是记载博 ...
随机推荐
- Appium移动自动化测试(三)--自动化测试demo
使用java语言编写并实现自动化测试实例 前面我已经搭建好了appium所需要的环境,本文我以系统自带的计算器app为测试对象,进行学习. 一.将测试机与PC连接 本人使用的是Android模拟器,测 ...
- 用requests库爬取猫眼电影Top100
这里需要注意一下,在爬取猫眼电影Top100时,网站设置了反爬虫机制,因此需要在requests库的get方法中添加headers,伪装成浏览器进行爬取 import requests from re ...
- SSL HTTPS 生成证书
SSL HTTPS 一.生成服务器私钥.公钥 $ openssl genrsa -out server.key 2048 $ openssl rsa -in server.key -pubout -o ...
- git如何回滚远程仓库
git如何回滚远程仓库 http://www.cnblogs.com/iloveyou-sky/p/6534409.html
- MYSQL变量和状态
mysql设置变量是在my.cnf文件里,修改配置文件后需要重启mysql的服务,才能生效.但是在线上服务器是不允许随便重启的,我们可以用命令直接修改变量值,使其生效.然后再修改配置文件中的值,以防止 ...
- discuz! 设置私密论坛版块的方法
Discuz!的强大功能不用细说, 话说对于有一部分需要设置具有一定访问权限的用户才能浏览的版块内容的话. 可能很多朋友不太清楚, 为了解决这个问题, 第一步以管理员的身份登陆, 然后 论坛-> ...
- [转载]java向word模板中填充数据(总结)
使用过PageOffice动态生成word文档的人都知道,PageOffice可以给word文档的指定位置进行填充,这里我们所说的指定位置在PageOffice的专业术语里面有两个概念,一个叫做数据区 ...
- spring容器和上下文的理解
spring容器和上下文的理解 spring框架现在使用的很多,这说明有其独特之处----依赖注入,很简单的四个字,在我们需要对象的时候,spring就可以给我们提供所需要的对象,对象的创建.销毁.管 ...
- position值详情
1.absolute属性: 英文直译成汉语的解释有:绝对,独立的.显然在做为css中position属性的值时“绝对”这个意思更恰当一些.他的作用是:生成绝对定位的元素,相对于static 定位以外的 ...
- PHP防止mysql注入方法
本文纲要: 1. 初始化你的变量 2. 一定记得要过滤你的变量 [一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我们php手手工安装的,php的默认配置文件在 /us ...