zoukankan      html  css  js  c++  java
  • 关于babel的几点小结

    1.babel是JS编译器

    babel的作用是高版本语法转换成低版本语法。需要配合browserslistrc,如果说browserslistrc列举的浏览器支持高版本的语法,则不用转换。

    2.babel有不少插件,每个插件的作用不一样

    2.1 核心库 @babel/core 是必不可少的,它是其他插件的基础。

    2.2 @babel/cli  提供babel命令。

    按照传统思维,一个ES6特性对应一个插件,例如箭头函数对应转换插件:plugin-transform-arrow-functions。如果多个特性那就要使用很多插件?显然开发过程中那是很困难的,

    babel通过预设可以解决轻松使用一组插件的弊端,预设插件@babel/preset-env,@babel/preset-env会根据你的目标环境,来自动生成插件列表来编译。

    2.3 @babel/polyfill 解析新增的内置函数或者类型,如:Promise或者WeakMap之类。有个弊端就是需要全局安装,如果对提供给别人库,就可能由于两者环境不同而出错。

    2.4 core-js@3,结合 @babel/polyfill使用,只需要把用到的polyfill 包含进来。配置如下:

    {
        "presets": [["@babel/preset-env",{
            "useBuiltIns": "usage",
            "corejs": 3
        }]]
    }

    2.5 @babel/plugin-transform-runtime、@babel/runtime-corejs3 。

    两者可以重复使用 Babel 注入的帮助程序,它把每个文件需要用到的babel插件以引用的方式注入到文件中,节省业务代码。配置如下:

    {
      "presets": [
        [
          "@babel/preset-env"
        ]
      ],
      "plugins": [
        [
          "@babel/plugin-transform-runtime",
          {
            "corejs": 3
          }
        ]
      ]
  • 相关阅读:
    POJ-2378 Tree Cutting
    ZOJ-3870 Team Formation
    POJ-1741 Tree (树上点分治)
    POJ-3107 Godfather
    HDU-3586 Information Disturbing(树形DP+删边)
    POJ 2796 (单调栈 + 前缀和)
    POJ 3250(单调栈)
    ATCoder 116 D (思维+贪心+栈)
    POJ2528 (离散化+线段树)
    HDU 2795(思维+线段树)
  • 原文地址:https://www.cnblogs.com/liuyinlei/p/13362753.html
Copyright © 2011-2022 走看看