当前位置: 首页 > article >正文

【Webpack--00802】配置Babel语法兼容

🤓😍Sam9029的CSDN博客主页:Sam9029的博客_CSDN博客-前端领域博主
🐱‍🐉若此文你认为写的不错,不要吝啬你的赞扬,求收藏,求评论,求一个大大的赞!👍*
🐞🐞文章若有错误或某个内容有更优的解决方案,还望指正!👍*
更多webpack入门知识,详细解读webpack的基本使用、进阶优化等;请阅读专栏:sam9029–CSDN博客—Webpack入门笔记
或者访问 作者个人博客网站:sam9029.asia—Webpack入门笔记


Babel

官方文档 https://www.webpackjs.com/loaders/babel-loader#root

JavaScript 编译器。

主要用于将 ES6 语法编写的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中

安装

npm i babel-loader @babel/core @babel/preset-env -D
  • babel-loader:用于在 webpack 构建过程中将 JavaScript 文件从 ES6+转换为 ES5,以便在旧版浏览器中运行。
  • @babel/core:这是 Babel 编译器的核心包,提供转译 JavaScript 代码的功能。
  • @babel/preset-env:这是 Babel 的一个预设,用于将 ES6+代码转换为向后兼容的 JavaScript 版本,以便在当前和旧版浏览器中运行。

配置文件

配置文件由很多种写法:

  • babel.config.*
    

    :新建文件,位于项目根目录

    • babel.config.js
    • babel.config.json
  • .babelrc.*
    

    :新建文件,位于项目根目录

    • .babelrc
    • .babelrc.js
    • .babelrc.json
  • package.jsonbabel:不需要创建文件,在原有文件基础上写

Babel 会查找和自动读取它们,所以以上配置文件只需要存在一个即可

babel.config.js基础配置

// babel.config.js
module.exports = {
  // 预设
  presets: ["@babel/preset-env"],
};

webpack.config.js 配置 Babel

  • 配置在 loader 之中
module.exports = {
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/, // 排除node_modules代码不编译
        loader: "babel-loader",
      },
    ],
  },
};
  • 完整 webpack.config.js
const path = require("path");
const ESLintWebpackPlugin = require("eslint-webpack-plugin");

module.exports = {
  entry: "./src/main.js",
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "static/js/main.js", // 将 js 文件输出到 static/js 目录中
    clean: true, // 自动将上次打包目录资源清空
  },
  module: {
    rules: [
      // ... 其他配置
      {
        test: /\.js$/,
        exclude: /node_modules/, // 排除node_modules代码不编译
        loader: "babel-loader",
      },
    ],
  },
  plugins: [
    // ... 其他配置
  ],
  mode: "development",
};

http://www.kler.cn/news/314550.html

相关文章:

  • 【图像检索】基于Gabor特征的图像检索,matlab实现
  • Python面试宝典第50题:分割等和子集
  • Vscode、插件历史版本下载
  • [数据结构与算法·C++] 笔记 1.4 算法复杂性分析
  • [附源码]SpringBoot+VUE+Java实现人脸识别系统
  • 实战指南:深度剖析Servlet+JSP+JDBC技术栈下的用户CRUD操作
  • 探秘 Web Bluetooth API:连接蓝牙设备的新利器
  • 828华为云征文|Flexus X实例GitLab部署构建流水线-私人一体化代码仓库~
  • AWS账号可以共用吗?
  • vue 中互相不关联的两个组件怎么进行通信(数据传输)
  • MFC获取网页的html文本
  • 视频V4改进
  • 锐捷 睿易路由器存在RCE漏洞
  • 会声会影2025视频剪辑教学
  • 开源集成开发环境搭建之VSCode安装部署教程
  • MySQL:基本查询操作
  • java计算机毕设课设—土地档案管理系统(附源码、文章、相关截图、部署视频)
  • 基于Java的SSM(Spring、Spring MVC、MyBatis)框架构建的远程诊断系统
  • 论文阅读 - MDFEND: Multi-domain Fake News Detection
  • 探索iPhone一键删除重复照片的方法
  • Kafka 为什么这么快?
  • 某乐指数爬虫逆向分析
  • Qemu开发ARM篇-2、uboot交叉编译
  • Android14 手机蓝牙配对后阻塞问题解决
  • python 自动化测试接口
  • 递归快速获取机构树型图
  • 【赵渝强老师】基于ZooKeeper实现Hadoop HA
  • DELPHI编译软件时带上当前IDE的版本号
  • 2024/9/21 leetcode 21.合并两个有序链表 2.两数相加
  • Hive企业级调优[5]—— HQL语法优化之数据倾斜