码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • babel.config.js配置文件详解


    文章目录

      • 一、前言
      • 二、babel 详解
      • 三、webpack 和 babel 之间的关系
      • 四、拓展阅读

    一、前言

    项目开发阶段,使用可选链操作符 ?. 出现以下编译报错问题:

    在这里插入图片描述

    分析:由于可选链操作符 ?. 是ES2020(即ES11)中推出的新语法,允许我们不需要校验当前属性的类型就可去尝试访问子属性。

    例如:let str = a?.b?.c;

    以上错误正是由于项目中无法解析可选链操作符等新的ES属性方法,如上图所示, 这时需要安装babel依赖@babel/plugin-proposal-optional-chaining,并添加到babel.config.js中。

    babel.config.js 配置信息如下:

    module.exports = {
      presets: ['@vue/app'],
      plugins: ["@babel/plugin-proposal-optional-chaining"]
    }
    
    • 1
    • 2
    • 3
    • 4

    二、babel 详解

    Vue 项目根目录中存在babel..config.js文件,即为Babel的配置文件,作用于整个项目。Vue项目中普遍使用ES6语法,若要求兼容低版本浏览器,就需要引入Babel,将ES6转换为ES5。

    三、webpack 和 babel 之间的关系

    在Vue项目中,Webpack和Babel是两个常用的工具,它们在不同方面发挥作用。

    Webpack是一个模块打包工具,它能够将项目中的各个模块打包成最终的静态资源文件,如JavaScript、CSS和图片等。Webpack提供了丰富的配置选项和插件系统,可以自定义和优化打包过程。

    Babel是一个JavaScript编译器,它主要用于将新版本的JavaScript代码转换为向后兼容的版本,以便在不支持最新语法和特性的浏览器中运行。Babel能够将ES6+的代码转换为ES5的代码,以及处理一些其他语法转换和代码优化。

    在Vue项目中,Webpack和Babel通常一起使用,具体关系如下:

    Webpack配置中使用Babel:在Webpack的配置文件中,通常会配置Babel作为一个loader或者插件,以便在打包过程中对JavaScript代码进行转换。通过Babel loader,Webpack可以将项目中的JavaScript文件交给Babel处理,进行语法转换和代码优化。

    Babel配置文件:Babel需要自己的配置文件,通常是.babelrc文件或babel.config.js文件。在这个配置文件中,可以指定Babel的转换规则、插件和预设等。这样,在Webpack打包过程中,Webpack会读取Babel配置文件,并根据配置对JavaScript代码进行转换。

    Vue CLI中的集成:如果使用Vue CLI来创建和管理Vue项目,它已经集成了Webpack和Babel,并提供了相应的配置。在Vue CLI生成的项目中,可以通过babel.config.js文件配置Babel,而Webpack的配置则隐藏在Vue CLI的内部,由Vue CLI负责管理。

    综上所述,Webpack是一个模块打包工具,用于将各个模块打包成最终的静态资源文件。而Babel是一个JavaScript编译器,用于将新版本的JavaScript代码转换为向后兼容的版本。在Vue项目中,Webpack和Babel通常一起使用,通过Webpack的配置来集成和配置Babel,以便对JavaScript代码进行转换和优化。

    四、拓展阅读

    • Babel中文文档
    • MDN可选链操作符?.
    • 《JavaScript进阶(十三):JavaScript 空值合并运算符、可选链操作符、空值赋值运算符讲解》
    • 《Vue进阶(五十一): vue-cli 脚手架 webpack.base.conf.js 配置文件讲解》
    • 《Vue进阶(一):Vue 学习资料汇总》
    • ES6 在线转换为 ES5
  • 相关阅读:
    ShaderLab实现序列帧动画
    Celix是什么?能做什么?
    ubuntu 中使用Qt连接MMSQl,报错libqsqlodbc.so: undefined symbol: SQLAllocHandle
    Unity 2D 游戏学习笔记(5)
    [附源码]计算机毕业设计JAVA同城搬家平台
    <十二>objectARX开发:Arx注册命令类型的含义以及颜色索引对应RGB值
    深度学习:感知机
    数据可视化(python)----中国近十年就业GDP对比
    NSDateFormatter格式化字符串时间上相差8个小时的问题处理
    重磅!顶象发布《城市消费券安全调研报告》
  • 原文地址:https://blog.csdn.net/sunhuaqiang1/article/details/133338516
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号