美文网首页
babel基本概念

babel基本概念

作者: 时间的溺水者 | 来源:发表于2022-03-22 22:36 被阅读0次

    Babel 是一个工具链,主要用于将采用 ECMAScript 2015+ 语法编写的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。

    preset与plugin的关系:

    preset中已经包含了一组用来转换ES6+的语法的插件,如果只使用少数新特性而非大多数新特性,可以不使用preset而只使用对应的转换插件
    
    babel默认只转换语法,而不转换新的API,如需使用新的API,还需要使用对应的转换插件或者polyfill
    
    例如,默认情况下babel可以将箭头函数,class等语法转换为ES5兼容的形式,但是却不能转换Map,Set,Promise等新的全局对象,这时候就需要使用polyfill去模拟这些新特性
    

    1、环境搭建

    package.json中安装依赖如下


    image.png

    比如在index.js 使用如下api

    `
    const sum = (a, b) => a + b

    // 新的 API
    Promise.resolve(100).then(data => data);

    // 新的 API
    [10, 20, 30].includes(20)
    `

    2、 在跟目录下配置.babelrc

    image.png

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

    babel/preset-env 是多个plugins的集合,可以满足绝大部分需求,如果不能满足 可以在plugins在进行扩展

    preset与plugin的关系:

    1.preset中已经包含了一组用来转换ES6+的语法的插件,如果只使用少数新特性而非大多数新特性,可以不使用preset而只使用对应的转换插件

    2.babel默认只转换语法,而不转换新的API,如需使用新的API,还需要使用对应的转换插件或者polyfill

    例如,默认情况下babel可以将箭头函数,class等语法转换为ES5兼容的形式,但是却不能转换Map,Set,Promise等新的全局对象,这时候就需要使用polyfill去模拟这些新特性

    相关文章

      网友评论

          本文标题:babel基本概念

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