Babel

作者: 李霖弢 | 来源:发表于2019-12-10 11:53 被阅读0次

    Babel 是什么?

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

    • 通过语法转换器来支持新版本的 JavaScript 语法。
    • 通过 Polyfill 方式在目标环境中添加缺失的特性 (通过 @babel/polyfill)
    • 源码转换 (codemods)
    使用babel-standalone实现ES6在线转换
    • babel-standalone支持非 node.js 环境下直接使用 Babel。
    • 虽然实时转码很方便,但由于实时转码需要时间,性能上不及预先转换的方案
    • 将需要转码的js写在<script type="text/babel">标签中,则转码后的内容会自动出现在<head>标签内
    <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
    <script type="text/babel">
    ...
    </script>
    
    使用@babel包进行本地转码
    1. 在本地而非全局进行安装,方便单独指定babel版本和转码规则等
    npm install --save-dev @babel/core @babel/cli @babel/preset-env
    npm install --save @babel/polyfill
    
    1. 配置转码规则
      在项目根目录下创建一个 babel.config.js 文件,并进行如下配置
    const presets = [
      [
        "@babel/env",
        {
          targets: {
            edge: "17",
            firefox: "60",
            chrome: "67",
            safari: "11.1",
            ie:"11"
          },
          useBuiltIns: "usage",//Babel 将检查代码,并引入目标环境中必须的 polyfill
        },
      ],
    ];
    
    module.exports = { presets };
    
    1. 运行命令进行转码
    ./node_modules/.bin/babel <js文件或目录> --out-dir <输出目录>
    

    或通过批处理文件执行

    ./node_modules/.bin/babel %1 --out-dir %2
    

    相关文章

      网友评论

          本文标题:Babel

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