一、报错内容

17:33:41  -  Building for production...
17:34:13   ERROR  Failed to compile with 5 errors5:34:09 PM
17:34:13
17:34:13   error  in ./src/layout/components/Sidebar/Item.vue?vue&type=script&lang=js&
17:34:13
17:34:13  Syntax Error: Thread Loader (Worker 0)
17:34:13  /data/jenkins/jenkins/workspace/projectname/src/layout/components/Sidebar/Item.vue: Support for the experimental syntax 'jsx' isn't currently enabled (20:19):
17:34:13
17:34:13    18 |
17:34:13    19 |     if (icon) {
17:34:13  > 20 |       vnodes.push(<svg-icon icon-class={icon}/>)
17:34:13       |                   ^
17:34:13    21 |     }
17:34:13    22 |
17:34:13    23 |     if (title) {
17:34:13
17:34:13  Add @babel/preset-react (https://github.com/babel/babel/tree/main/packages/babel-preset-react) to the 'presets' section of your Babel config to enable transformation.
17:34:13  If you want to leave it as-is, add @babel/plugin-syntax-jsx (https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-jsx) to the 'plugins' section to enable parsing.
17:34:13   ERROR  Build failed with errors.

二、问题分析

从字面上看就是:当前没有启用对实验性语法“jsx”的支持,这个是属于Babel 配置的错误。
解决方案也很简单:.babelrc 配置文件中 添加@vue/babel-preset-jsx即可

但是奇怪的现象是,我本地运行是没有问题的,但是一到服务器运行就失败了。
难怪同事会说,你先自查以下是否有漏提交的文件。

等会~这个文件怎么这么熟悉呢?才想起来自己使用的是IDEA开发
之前都是导入的别人的文件,不会注意这些,于是在忽略的文件和文件夹中能找到他们。
果然~~~~一看忽略的文件和文件夹中,果然有他们。。

三、问题解决

新增这个文件,重新运行即可。

文件内容如下:

module.exports = {presets: [// https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app'@vue/cli-plugin-babel/preset'],'env': {'development': {// babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().// This plugin can significantly increase the speed of hot updates, when you have a large number of pages.'plugins': ['dynamic-import-node']}}
}

五、Babel介绍

5.1 诞生背景

写es6+语法时很方便,什么promise、async await`,可是es6+语法写的虽然很酸爽,但是浏览器他不兼容啊,你想想你写的代码在浏览器上跑不起来,在好的语法在好的特性又有什么用?

这个时候Babel这样一个工具出来了,他可以将我们写的es6+语法转换为浏览器兼容的语法,比如将箭头函数转换为普通函数,有了这样一个工具我们就即可以写酸爽的语法,又可以让使浏览器兼容。

5.2 Babel 是什么?

Babel 是一个 JavaScript 编译器,它能让开发者在开发过程中,直接使用各类方言(如 TS、Flow、JSX)或新的语法特性,而不需要考虑运行环境,因为 Babel 可以做到按需转换为低版本支持的代码;

5.3 Babel 内部原理

Babel 内部原理是将 JS 代码转换为 AST,对 AST 应用各种插件进行处理,最终输出编译后的 JS 代码。

5.4 Babel 插件系统

Babel 的核心模块 @babel/core,@babel/parser,@babel/traverse 和 @babel/generator 提供了完整的编译流程。而具体的转换逻辑需要插件来完成。

在使用 Babel 时,我们可通过配置文件指定 plugin 和 preset。而 preset 可以是 plugin 和 preset 以及其他配置的集合。Babel 会递归读取 preset,最终获取一个大的 plugins 数组,用于后续使用。

5.5 Babel 中常见 presets

@babel/preset-env
@babel/preset-typescript
@babel/preset-react

【异常】前端Babel提示 Support for the experimental syntax ‘jsx‘ isn‘t currently enabled相关推荐

  1. Support for the experimental syntax ‘classProperties‘ isn‘t currently enabled

    环境 React 16.13 出错信息: 出错的原因: Support for the experimental syntax 'classProperties' isn't currently en ...

  2. Support for the experimental syntax 'decorators-legacy' isn't currently enabled 异常解决

    问题描述:为React项目添加装饰器的时候"@"符号无法进行转议处理 解决方案: 1. 执行git add . git add . 2.执行git commit -am " ...

  3. Support for the experimental syntax 'dynamicImport' isn't currently enabled

    在研究vue代码中动态加载组件遇到这样的问题,记录解决方法: 1.安装@babel/plugin-syntax-dynamic-import yarn add @babel/plugin-syntax ...

  4. 关于报错Support for the experimental syntax ‘decorators-legacy‘ isn‘t currently enabled

    报错原因 装饰器写法不被支持 解决办法 bable转码 npm install @babel/plugin-proposal-decorators 配置package.json "babel ...

  5. Support for the experimental syntax ‘decorators‘ isn‘t currently enabled

    webpack学习 babel的配置文件有问题,在敲配置文件时注意 一定要放在根目录 具体配置查看 https://babeljs.io/

  6. 调用后台接口返回报错前端隐藏提示_前端异常监控解决方案研究(转)

    前端监控包括行为监控.异常监控.性能监控等,本文主要讨论异常监控.对于前端而言,和后端处于同一个监控系统中,前端有自己的监控方案,后端也有自己等监控方案,但两者并不分离,因为一个用户在操作应用过程中如 ...

  7. ❤️《大前端—Babel》

    <大前端-Babel> 1.简介 ES6的某些高级语法在浏览器环境甚至是Node.js环境中无法执行. Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执行 ...

  8. LayUI表格初始化错误(请求异常,错误提示:parsererror)

    最近刚使用layui,不得不说挺强大的!! 下面是本人在layui初始化表格时踩的坑 表格初始化失败,并提示(请求异常,错误提示:parsererror) 首先说一下,这个是因为给表格初始化的参数有问 ...

  9. 在使用Navicat for MySQL 出现 异常“You have an error in your SQL syntax......“

    在使用Navicat for MySQL 出现 异常"You have an error in your SQL syntax......" 参考文章: (1)在使用Navicat ...

最新文章

  1. import javax.servlet.http.HttpServletRequest 提示错误
  2. python模块的导入的两种方式区别详解
  3. Sublime Text 3 常用快捷键汇总
  4. 大涨50%之后 瑞幸咖啡美股盘前再涨逾30%
  5. 使用react-native做一个简单的应用-01项目介绍
  6. SharePoint And Ajax Technology(2):Ajax Control Toolkit学习
  7. Xtrabackup--InnoDB备份工具介绍(1)
  8. MySQL的连接字符串 concat、concat_ws、group_concat、repeat()函数用法
  9. 手把手教你使用VSS
  10. oracle写一个全量刷新,Oracle物化视图定时全量刷新导致归档日志骤增
  11. 使用Mac打开mht格式文件
  12. 10 个最佳 WordPress 幻灯片插件
  13. u盘引导不能识别惠普服务器硬盘,如何解决惠普电脑uefi识别不了u盘
  14. python笔试题110题_吐血整理:110道python面试题(带答案)
  15. CSR8670学习笔记:OTA升级固件
  16. 基于QT4的智能温度采集控制系统
  17. ubuntu20.04未找到Wi-Fi适配器
  18. 关于DBA或SA这个职业的讨论
  19. 循环码编码与译码(MATLAB实现)
  20. Windows10黑色背景下看不清鼠标光标问题的解决

热门文章

  1. 达内机构python培训费用
  2. uniapp前端微信h5支付
  3. 雷军昨夜正式公布MI Pay:采用NFC解决方案
  4. 对于C9项目的SWOT简要分析
  5. 努力做一个灵魂画师、Affinity Designer使用(一)
  6. 2022年全球最具技术实力的的智能合约安全审计公司推荐
  7. cxfreeze使用记录
  8. KEIL5找不到C51的芯片包如何解决
  9. 如何优雅的从OSM(OpenStreetMap)上获取一个城市的路网?
  10. SECS/GEM300半导体12寸标准通讯设计方案,300mm标准