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文档阅读
原因之初 最初习惯百度各种博客教程,然后跟着操作,因为觉得跟着别人走过的路走可以少走很多弯路,省时间.然而,很多博客的内容并不够完整,甚至错误,看多了的博客甚至有千篇一律的感觉.此外,博客毕竟是记载博 ...
随机推荐
- LightOJ - 1341唯一分解定理
唯一分解定理 先分解面积,然后除2,再减去面积%长度==0的情况,注意毯子不能是正方形 #include<map> #include<set> #include<cmat ...
- 51nod 1383 母函数
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1383 一眼望去,不就是硬币兑换吗,母函数或者dp,直接暴力dp就A了,不 ...
- spring boot 跨域问题
public class WebMvcConfig implements WebMvcConfigurer { @Override public void addInterceptors(Inter ...
- 【Python】函数对象
转:作者:Vamei 出处:http://www.cnblogs.com/vamei 函数也是一个对象,具有属性(可以使用dir()查询).作为对象,它还可以赋值给其它对象名,或者作为参数传递. la ...
- 012-对象——魔术常量__CLASS__ __METHOD__ __FUNCTION__ __DIR__ __FILE__
<?php /** *魔术常量__CLASS__ __METHOD__ __FUNCTION__ __DIR__ __FILE__ */ //魔术常量:__CLASS__ 得到类名. /*cla ...
- react pagination
class AppPagination extends React.Component { handleChange(pageNum) { this.props.handleChangePage(pa ...
- Week07《Java程序设计》第七次作业总结
Week07<Java程序设计>第七次作业总结 1. 本周学习总结 1.1 思维导图:Java图形界面总结 答: 1.2 可选:使用常规方法总结其他上课内容. 答: 1. Swing组件: ...
- 热烈祝贺博主LZUGIS博客访问量突破
截止发文时间,博主"LZUGIS"CSDN博客文章总访问量突破50W,值此特殊的时刻,特发此文,以表纪念与督促. 博客详情 博客专栏 公众号 常言道:不积跬步,无以至千里:不积小流 ...
- ng 依赖注入
将依赖的对象注入到当前对象,直接去使用依赖的对象即可. 降低耦合度.提高开发速度.. 文件压缩:yui-compressor有两种方案:①CLI(command line interface)java ...
- 部署tinyproxy透明代理服务
线上需要一个https的透明代理,开始打算用nginx,调试了一段时间发现配置较复杂且没有成功.后来用的tinyproxy做的透明代理.安装配置过程就是下载.解压.编译.安装.配置.启动一波流: 安装 ...