webpack/8、babel

63 阅读1分钟

1、webpack、babel-loader、babel.config.js与babel的关系

Webpack是打包工具,定义入口文件,将所有模块引入整理后,通过loader和plugin处理后,打包输出。

babel-loader是 Webpack 的一个 loader,Webpack通过babel-loader 使用Babel。

babel.config.js是 Babel 的配置文件,告诉Babel如何处理编译js。

Babel是js编译工具,把高版本语法编译成低版本语法,或者将文件按照自定义的规则转换成js语法。

它们的工作流程:

webpack => babel-loader => babel.config.js => babel

2、babel是什么

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

  • 语法转换
  • 通过 Polyfill 方式在目标环境中添加缺失的功能(通过引入第三方 polyfill 模块,例如 core-js
  • 源码转换(codemods)

3、babel.config.js文件

plugins、presets介绍

plugins:指导 Babel 如何对代码进行转换。

module.exports = {
  plugins: [
    "@babel/plugin-syntax-jsx",
    "@babel/plugin-transform-react-jsx",
    "@babel/plugin-transform-react-display-name",
  ],
};

presets:plugins的集合。

module.exports = {
  presets: [
    [
      "@babel/preset-env",
      {
        targets: {
          browsers: ["last 2 version"], // 最近 2 个版本的浏览器
        },
      },
    ],
  ],
};

常用的presets如下:

4、参考资料