Babel 默认只转换新的 JavaScript 语法

babel-plugin-transform-runtime:babel打包的一个plugin,用来把babel-runtime polyfill注入到代码里

babel-preset-es2015:ES6的语法转换,Generator的ployfill,打包代码的方式(amd,commonjs,systemjs,umd)

babel-runtime:Generator的ployfill,ES6 polyfill 集合

babel-polyfill:Generator的ployfill,ES6 polyfill 集合

babel-plugin-transform-runtime
babel-runtime
core-js // ES6 polyfill
regenerator-runtime // Generator polyfill
babel-polyfill
babel-runtime
core-js // ES6 polyfill
regenerator-runtime // Generator polyfill
regenerator-runtime // Generator polyfill
core-js // ES6 polyfill

babel-polyfill

Babel 默认只转换新的 JavaScript 语法,而不转换新的 API。例如,Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise 等全局对象,以及一些定义在全局对象上的方法(比如 Object.assign)都不会转译。如果想使用这些新的对象和方法,必须使用 babel-polyfill,为当前环境提供一个垫片。

babel-runtime

babel-runtime 是为了减少重复代码而生的。babel-runtime插件能够将这些工具函数的代码转换成require语句,指向为对babel-runtime的引用。

babel-plugin-transform-runtime

以插件的形式在打包时引入到文件里

指定plugin

默认的如果使用了 babel-preset-es2015 的 preset,那么就意味着你必须要使用所有的plugin,如果浏览器已经支持了Generator,你不想做转换,你可以使用这个库 babel-preset-es2015-without-regenerator

或者你可以自己定义plugin,把 babel-preset-es2015 里面的依赖抽取出来。自定义配置。比如这个没有 regenerator transform的babelrc配置

{
"presets": [],
"plugins": [
"babel-plugin-check-es2015-constants",
"babel-plugin-transform-es2015-arrow-functions",
"babel-plugin-transform-es2015-block-scoped-functions",
"babel-plugin-transform-es2015-block-scoping",
"babel-plugin-transform-es2015-classes",
"babel-plugin-transform-es2015-computed-properties",
"babel-plugin-transform-es2015-destructuring",
"babel-plugin-transform-es2015-duplicate-keys",
"babel-plugin-transform-es2015-for-of",
"babel-plugin-transform-es2015-function-name",
"babel-plugin-transform-es2015-literals",
"babel-plugin-transform-es2015-modules-commonjs",
"babel-plugin-transform-es2015-object-super",
"babel-plugin-transform-es2015-parameters",
"babel-plugin-transform-es2015-shorthand-properties",
"babel-plugin-transform-es2015-spread",
"babel-plugin-transform-es2015-sticky-regex",
"babel-plugin-transform-es2015-template-literals",
"babel-plugin-transform-es2015-typeof-symbol",
"babel-plugin-transform-es2015-unicode-regex"
]
}

babel-runtime 和 babel-polyfill的更多相关文章

  1. @babel/runtime 和 @babel/plugin-transform-runtime 两个的作用是什么

    Babel 最基础的功能就是将采用 ECMAScript 2015+ 语法编写的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中. 最基础的依赖包也就是 ...

  2. Install fail! Error: [@@babel/runtime/core-js/object/keys]

    1.Install fail! Error: [@@babel/runtime/core-js/object/keys] "@babel/runtime": "7.0.0 ...

  3. Error: Cannot find module '@babel/runtime/core-js/object/keys'(npm start报错)

    1.问题描述: 在npm start启动react项目的时候,会出现Cannot find module '@babel/runtime/core-js/object/keys'的报错: 打开:项目根 ...

  4. Module not found: Error: Can't resolve '@babel/runtime/helpers/classCallCheck' and Module not found: Error: Can't resolve '@babel/runtime/helpers/defineProperty'

    These two mistakes are really just one mistake, This is because the following file @babel/runtime ca ...

  5. Babel插件:@babel/plugin-transform-runtime

    一 概述 每个Babel编译后的脚本文件,都以导入的方式使用Babel的帮助函数,而不是每个文件都复制一份帮助函数的代码. 1 优点 (1)提高代码重用性,缩小编译后的代码体积. (2)防止污染全局作 ...

  6. 【Babel】293- 初学 Babel 工作原理

    戳蓝字「前端技术优选」关注我们哦! 前言 babel Babel 对于前端开发者来说应该是很熟悉了,日常开发中基本上是离不开它的. 已经9102了,我们已经能够熟练地使用 es2015+ 的语法.但是 ...

  7. babel 7 简单升级指南

    babel 7 babel 7 发布两天了,试着对当前项目更新了下,仅此记录分享 主要改动参考 官方博客 官方升级指南 主要升级内容 不再支持放弃维护的 node 版本 0.10.0.12.4.5 使 ...

  8. babel 7 简单指北

    babel 7 对于 babel 7,babel 的官网已经介绍得非常详细了,但有时感觉文档和实际使用总是差那么一点东西. 主要包 先来看一下主要的包,babel 7 对于包进行了一些简化. @bab ...

  9. 前端利器躬行记(2)——Babel

    Babel是一个JavaScript编译器,不仅能将当前运行环境不支持的JavaScript语法(例如ES6.ES7等)编译成向下兼容的可用语法(例如ES3或ES5),这其中会涉及新语法的转换和缺失特 ...

  10. babel 实践

    一.@babel/core var babel = require("@babel/core");babel.transform(code, options, function(e ...

随机推荐

  1. Node.js学习笔记(3)——关于回调函数和函数的回调

    说明:本人是node.js的初学者,尝试向别人解释这是怎么回事是自我学习的一个好方法.如果你发现有些地方并不是那么正确,欢迎提出来让我知道以便修正,共同进步,谢过^_^.       欢迎交流,本人微 ...

  2. 栈(C++)

    简介: 限定仅在表尾进行插入或删除操作的线性表 表尾端称为栈顶(top),表头端称为栈底(bottom) 特点: 在栈中,后入栈的元素先出栈 C语言版本 用于测试的文件,以及测试结果可以去作者GitH ...

  3. 触发器 (Delete Update)

    --delete触发器IF(EXISTS(SELECT * FROM sysobjects WHERE name='T_PlanQtyDelete'))DROP TRIGGER T_PlanQtyDe ...

  4. 具体解释TCP协议的服务特点以及连接建立与终止的过程(俗称三次握手四次挥手)

    转载请附本文的链接地址:http://blog.csdn.net/sahadev_/article/details/50780825 ,谢谢. tcp/ip技术经常会在我们面试的时候出现,非常多公司也 ...

  5. COGS1817. [WC2013]糖果公园

    1817. [WC2013]糖果公园 ★★★☆   输入文件:park.in   输出文件:park.out   简单对比时间限制:8 s   内存限制:512 MB [题目描述] Candyland ...

  6. idea创建普通java项目以及maven创建项目过程(转)

    1. idea创建一个普通项目流程 http://blog.csdn.net/testcs_dn/article/details/52303941 2. idea创建maven项目流程 http:// ...

  7. 性能测试--siege

    siege 这是Linux系统下的一个测试工具,完全使用C语言实现,可以对HTTP和FTP服务器进行负载和性能测试.通过使用Siege 提供的功能,可以很容易的制定测试计划:包括规定使用并发用户数.重 ...

  8. Hadoop实战-Flume之Sink Load-balancing(十七)

    a1.sources = r1 a1.sinks = k1 k2 a1.channels = c1 # Describe/configure the source a1.sources.r1.type ...

  9. ES5中的类与继承

    最近在重新复习TypeScript,看到类这块的时候自然会和ES5中的类写法进行对比加深印象. 发现ES5的类与继承一些细节还是挺多的,时间久了容易忘记,特此记录下. 首先是ES5的类定义,这没什么好 ...

  10. [持续集成]Jenkins 自动化部署 Maven 工程

    一.Jenkins 持续部署原理图 基础服务: 1 SVN 服务 SVN是Subversion的简称,是一个开放源代码的版本控制系统.说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的 ...