babel7中 preset-env 完全使用


babel7中 preset-env 完全使用

const presets = [
  ['@babel/env', {
    // chrome, opera, edge, firefox, safari, ie, ios, android, node, electron
    // targets 和 browerslist 合並取最低版本
    targets: {
      ie: 8,

      // 是否使用 esmodules
      esmodules: true,
    },

    // 啟用更符合規范的轉換,但速度會更慢,默認為 `false`,從目前來看,是更嚴格的轉化,包括一些代碼檢查。
    spec: false,

    // 有兩種模式:normal, loose。其中 normal 更接近 es6 loose 更接近 es5
    loose: false,

    // "amd" | "umd" | "systemjs" | "commonjs" | "cjs" | false, defaults to "commonjs"
    modules: false,

    // 打印插件使用情況
    debug: true,

    // 按需增加移除一些功能
    // include: [],
    // exclude: [],

    // 增加 polyfills
    // 按需使用
    // useBuiltIns: 'usage',
    // 引用一次
    // useBuiltIns: 'entry',
    // 不引用,獨自使用
    // useBuiltIns: false,

    // 強制使用所有的插件
    // forceAllTransforms: false,

    // 配置 browerslist 的位置
    // configPath: ,
    // 配置是否忽略 browerslist 文件
    // ignoreBrowserslistConfig: false,

    // 是否跳過 proposal 的文件
    // shippedProposals: false,
  }]
];

const plugins = [
  [
    // 重用把 babel 注入的幫助代碼, 依賴 @babel/runtime
    "@babel/plugin-transform-runtime",
    {
      // false || 2, 變成全局或者局部
      "corejs": false,
      
      // 生成器運行時的使用,變成全局或者局部
      "regenerator": true,

      // 幫助函數是變成 inline, 還是  lib
      "helpers": true,

      // helpers 切換成 esm
      "useESModules": true
    }
  ]
];

module.exports = { presets, plugins };

詳細的代碼在: github


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM