Skip to content

babel

仲灏2022-06-10约 1 分钟

<div style="display: none;" hidden="true" aria-hidden="true" data-nosnippet>Are you an LLM? You can read better optimized documentation at /pages/890104.md for this page in Markdown format</div>

环境搭建& 基本配置 babel-polyfill babel-runtime

环境搭建 .babelrc配置

js
{
    "presets": [ // plugin集合,做的预设
        [
            "@babel/preset-env",
           ...
        ]
    ],
    "plugins": [
        ...
    ]
}

babel-polyfill 是什么

  • 什么是 Polyfill

    core-js 和 regenerator 的集合

    • 语法补充
  • core-js 和 regenerator

  • 按需引入

    js
    // presets
            [
                "@babel/preset-env",
              // 按需引用
                {
                    "useBuiltIns": "usage",
                    "corejs": 3
                }
            ]

preset: 和 plugins

babel-polyfill 的问题

  • 会污染全局环境
  • 如果做一个独立的 web 系统,则无碍
  • 如果做一个第三方 lib,则会有问题

babel-runtime

babel-runtime 就能解决以上的问题

安装

json
{
  
  "devDependencies": {
    "@babel/cli": "^7.7.5",
    "@babel/core": "^7.7.5",
    "@babel/plugin-transform-runtime": "^7.7.5",
    "@babel/preset-env": "^7.7.5"
  },
  "dependencies": {
    "@babel/polyfill": "^7.7.0",
    "@babel/runtime": "^7.7.5"
  }
  
}

配置。babelrc

js

{
    "presets": [
        [
            "@babel/preset-env",
            {
                "useBuiltIns": "usage",
                "corejs": 3
            }
        ]
    ],
    "plugins": [
        [
            "@babel/plugin-transform-runtime",
            {
                "absoluteRuntime": false,
                "corejs": 3,
                "helpers": true,
                "regenerator": true,
                "useESModules": false
            }
        ]
    ]
}