美文网首页我爱编程
一文带你了解babel-preset-env

一文带你了解babel-preset-env

作者: 忽如寄 | 来源:发表于2018-05-25 18:51 被阅读3131次

相信很多人都和我一样,刚接触babel的时候都是使用 babel-preset-es2015 这个预设套餐的,但是显然目前而言 babel-preset-env 会是一个更好的选择,babel-preset-env 可以根据配置的目标浏览器或者运行环境来自动将ES2015+的代码转换为es5。

吸引人的地方在于我们可以通过 [.browserslistrc](https://github.com/browserslist/browserslist) 文件来指定特定的目标浏览器。当然也可以通过targets选项的browsers选项指定。不过如果你的目标浏览器支持 es modules 特性,browsers 选项则会失效,如下:

{
    "presets": [
        ["@babel/preset-env"
            "targets": {
                "esmodules": true
            }
        ]
    ]
}

同样也可以指定Node.js的版本:

{
    "presets": [
        ["@babel/preset-env"
            "targets": {
                "node": "6.10"
            }
        ]
    ]
}

如果node的选项值为 current 则说明是指定运行时的node.js版本。

{
    "presets": [
        ["@babel/preset-env"
            "targets": {
                "node": "current"
            }
        ]
    ]
}

我们需要知道的是制定个targets的browsers时使用的是 browserslist ,我们可以在 .babelrc 文件、package.json文件、browserslist中指定浏览器版本选项,优先级规则是 .babelrc文件定义了则会忽略 browserslist.babelrc 没有定义则会搜索 browserslistpackage.json 两者应该只定义一个,否则会报错。

babel-preset-env 的主要参数选项有:

  • targets

  • targets.node

  • targets.browsers

  • spec : 启用更符合规范的转换,但速度会更慢,默认为 false

  • loose:是否使用 loose mode,默认为 false

  • modules:将 ES6 module 转换为其他模块规范,可选 "adm" | "umd" | "systemjs" | "commonjs" | "cjs" | false,默认为 false

  • debug:启用debug,默认 false

  • include:一个包含使用的 plugins 的数组

  • exclude:一个包含不使用的 plugins 的数组

  • useBuiltIns:为 polyfills 应用 @babel/preset-env ,可选 "usage" | "entry" | false,默认为 false

Refs:

README of babel-preset-env

相关文章

  • 一文带你了解babel-preset-env

    相信很多人都和我一样,刚接触babel的时候都是使用 babel-preset-es2015 这个预设套餐的,但是...

  • 2021备考:一文带你全面了解MPA

    2021考研,洪桥教育推出【一文带你全面了解】系列, 备考的入门信息,让你一文搞定 MBA专栏|一文带你全面了解M...

  • Java Agent的隔离实现以及卸载时一些坑

    在《一文带你了解Java Agent》中,让大家了解了Java Agent的来龙去脉,当通过attach方式去动态...

  • 一文带你了解钻戒

    想了解钻戒?想知道怎么去选购?想知道怎么可以买到物美价廉的?请往下看! 想了解钻戒,你起码得知道什...

  • 一文带你了解爬虫

    六月分享主题:爬虫HTTP详解网页结构简介 前段时间我妈突然问我:儿子,爬虫是什么?我当时既惊讶又尴尬,惊讶的是为...

  • 一文带你了解TDS

    当前整个区块链的发展就是不断地遇到瓶颈和解决瓶颈的过程,以太坊的出现是标志性的,过去我们将以太坊比作平台,开...

  • 【肛门测压】2021-07.27

    【01】一文带你了解肛门直肠测压[https://mp.weixin.qq.com/s/9IrIOfv8Tlffb...

  • 单细胞基因集打分实操之irGSEA

    Immugent在推文一文带你了解单细胞数据基因集打分的所有算法[https://mp.weixin.qq.com...

  • Raft论文学习

    [TOC] 参考资料 raft论文原文 raft论文中文译文 raft毕业论文 raft理解 一文带你了解 Raf...

  • 一文带你了解Java Agent

    Java Agent这个技术,对于大多数同学来说都比较陌生,但是多多少少又接触过,实际上,我们平时用的很多工具,都...

网友评论

    本文标题:一文带你了解babel-preset-env

    本文链接:https://www.haomeiwen.com/subject/fybujftx.html