zoukankan      html  css  js  c++  java
  • @babel/preset-env 解决Promise被Babel编译成regenerator 运行时错误问题

    "useBuiltIns"

    默认为false, 不为每个文件自动添加polyfill,也不要进行转换import "core-js"或import "@babel/polyfill"更改为单个polyfill。

    "usage": 按需导入填充物

    填充物主要来自core-jsregenerator-runtime等开源项目.

    "useBuiltIns": "usage"
    

    填充物示例如下(babel转译后源码):

    require("core-js/modules/es6.object.define-property");
    require("regenerator-runtime/runtime");
    require("core-js/modules/es6.promise");
    require("core-js/modules/es6.object.to-string");
    

    "entry": 从全局使用填充物

    entry代表填充物在入口js文件中填充到全局空间中, 不需要为每个js文件导入填充物.
    因此常发生ReferenceError:

    ReferenceError: regeneratorRuntime is not defined
        at _foo2 (/home/githmb/babel/b.js:49:43)
        at foo (/home/githmb/babel/b.js:45:16)
        at main (/home/githmb/babel/b.js:13:3)
    

    targets.esmodules

    现代浏览器其实不需要填充:

    {
      "presets": [
        [
          "@babel/preset-env",
          {
            "modules": "commonjs",
            "useBuiltIns": false,
            "targets": {
              "esmodules": true
            }
          }
        ],
        "@babel/typescript"
      ]
    }
    

    END

  • 相关阅读:
    gcc各个版本下载
    加减法运算解决乘除法
    蚂蚁碰撞的概率
    ns2.34移植leach协议
    ubantu16.04安装ns2.34 错误
    ubantu安全卸载火狐浏览器
    post和get的区别
    docker加速配置阿里云镜像
    重装系统后,会因为本机保存的公匙不对报错
    集合 set
  • 原文地址:https://www.cnblogs.com/develon/p/13977929.html
Copyright © 2011-2022 走看看