zoukankan      html  css  js  c++  java
  • babel(一)

    一、babel

    npm babel  src/index.js -d lib

     二、@babel/core   @babel/cli

    @babel/core  转换语法核心

     @babel/cli   执行脚本

    三、@babel/preset-env

    四、babel-pollyfill

    npm install --save @babel/polyfill

    The @babel/polyfill module includes core-js and a custom regenerator runtime to emulate a full ES2015+ environment.

    This means you can use new built-ins like Promise or WeakMap, static methods like Array.from or Object.assign, instance methods like Array.prototype.includes, and generator functions (provided you use the regenerator plugin). The polyfill adds to the global scope as well as native prototypes like String in order to do this.

    For library/tool authors this may be too much. If you don't need the instance methods like Array.prototype.includes you can do without polluting the global scope altogether by using the transform runtime plugin instead of @babel/polyfill.

    To go one step further, if you know exactly what features you need polyfills for, you can require them directly from core-js.

    Now luckily for us, we're using the env preset which has a "useBuiltIns" option that when set to "usage" will practically apply the last optimization mentioned above where you only include the polyfills you need. With this new option the configuration changes like this:

     If we weren't using the env preset with the "useBuiltIns" option set to "usage" we would've had to require the full polyfill only once in our entry point before any other code.

    三、transform-runtime

    We have separated out Babel's helpers from it's "polyfilling" behavior in runtime. More details in the PR.

    @babel/runtime now only contains the helpers, and if you need core-js you can use @babel/runtime-corejs2 and the option provided in the transform. For both you still need the @babel/plugin-transform-runtime

    This PR splits our setup into two separate runtimes:

      

    'plugins': [
      ['transform-runtime'],
    ]
    with npm install --save @babel/runtime that just includes our helpers, and relies on users to globally polyfill any APIs they need.
    'plugins': [
      ['transform-runtime', { corejs: 2 }],
    ]
    with npm install --save @babel/runtime-corejs2 that includes everything @babel/runtime does, but also includes a passthrough API for corejs@2.x and rewrites all of the helper modules to reference core-js.

    @babel/runtime is a library that contain's Babel modular runtime helpers and a version of regenerator-runtime.

    具体作用地址: https://babeljs.io/docs/en/babel-runtime

    @babel/runtime-corejs2 is a library that contain's Babel modular runtime helpers and a version of regenerator-runtime as well as core-js.

    Difference from @babel/runtime

    This can be used instead of a polyfill for any non-instance methods. It will replace things like Promise or Symbol with the library functions in core-js.

    具体作用地址: https://babeljs.io/docs/en/babel-runtime-corejs2

    五、plugins

    • Plugins run before Presets.
    • Plugin ordering is first to last.
    • Preset ordering is reversed (last to first).

    { "plugins": ["pluginA", ["pluginA"], ["pluginA", {}]] }

    六、presets

    • Stage 0 - Strawman: just an idea, possible Babel plugin.
    • Stage 1 - Proposal: this is worth working on.
    • Stage 2 - Draft: initial spec.
    • Stage 3 - Candidate: complete spec and initial browser implementations.
    • Stage 4 - Finished: will be added to the next yearly release.    

          { "presets": [ "presetA", ["presetA"], ["presetA", {}], ] }

  • 相关阅读:
    【RL-TCPnet网络教程】第41章 HTTP超文本传输协议基础知识
    【安富莱TCPnet网络教程】HTTP通信实例
    【原创开源】网络版二代双通道示波器开源发布,支持电脑,手机和Pad等各种OS平台访问
    【RL-TCPnet网络教程】第40章 RL-TCPnet之TFTP客户端(精简版)
    【RL-TCPnet网络教程】第38章 TFTP简单文件传输基础知识
    linux添加环境变量
    linux字体安装
    lsof常用命令
    systemctl
    简单磁盘操作
  • 原文地址:https://www.cnblogs.com/shangyueyue/p/10521443.html
Copyright © 2011-2022 走看看