npm run build 时出现语法报错 Module parse failed: Unexpected token

错误原因

出现这个错误一般是你使用了或者引用的包里出现了ES6的语法,但是你的webpack可能是4.x或者更低版本的,

这时候单靠webpack本身无法识别ES6的语法,但是升级webpack到5可能会与现有的代码产生兼容性问题,因此就需要引入babel插件,将ES6的语法进行转换。

常见ES6语法有 ??、??=、?.、?: 等等。

复制代码
Module parse failed: Unexpected token (46:45)
You may need an appropriate loader to handle this file type,
 currently no loaders are configured to process this file

引入插件

执行一下三个命令,注意如果出错,请去npm官网找到最高的兼容webpack4的版本安装即可。

复制代码
npm install @babel/core
npm install babel-loader@8.3.0
npm install @babel/preset-env

配置babel-loader

在webpack.base.conf.js中添加如下内容

复制代码
{
  test: /\.js$/,
     use: {
         loader: 'babel-loader',
         options: {
             // 使用 Babel 中的 @babel/preset-env 预设
             presets: [
                 '@babel/preset-env',
             ]
         }
     }
 }

结果

此时重新 npm run build 应该就好了,但是请注意,为了保险点,最好手动把之前的dist目录删除,避免缓存问题导致build后运行还是出错。

相关推荐
妙码生花14 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(五十八):后台系统配置管理实现
前端·后端·go
用户9385156350714 小时前
React 受控/非受控组件与 React.memo 性能优化——从本质到实战
前端·javascript·react.js
IT_陈寒14 小时前
Java并行流把我坑惨了:原来不是线程安全的!
前端·人工智能·后端
计科土狗15 小时前
GESP六级专题之类与对象
java·前端·数据库
anOnion15 小时前
构建无障碍组件之Listbox Pattern
前端·html·交互设计
凌涘15 小时前
前端路由(三):鉴权、拦截与重定向
前端
半个落月15 小时前
从零梳理 React Router:路由、懒加载、嵌套页面与登录鉴权
前端·react.js
tedcloud12316 小时前
Impeccable 部署指南:开源前端设计工具 Linux 环境搭建实践
linux·运维·服务器·前端·人工智能·开源
默_笙16 小时前
🚩 React + TypeScript 的 Props 通信,我从"把事件对象传给父组件"进化到了"只传值"
前端·javascript
渣波16 小时前
赋予 React “多线程”:Hooks + Web Worker 并发计算架构深度解析
前端·javascript