vue3+vite项目报错Transforming async generator functions to the configured target environment (“es2015“)

启动项目时报此错误:Transforming async generator functions to the configured target environment ("es2015") is not supported yet

build时也会报错: Transforming async generator functions to the configured target environment ("es2015") is not supported yet 

原因是: 

在vite.config.js中build.target指定为了es2015,会使用esbuild进行转换到浏览器兼容目标。

    build: {
        target: "es2015",
        outDir: OUTPUT_DIR,
        // minify: "terser", // 如果需要用terser混淆,可打开这两行
        // terserOptions,
        rollupOptions,
        brotliSize,
        chunkSizeWarningLimit
    }

但是新版本 axios 代码使用了旧的 esbuild 版本 中不支持的 JS 功能async generator functions导致报错。

解决办法一:

esbuild升级为 ^0.18.2 及以上可解决此问题, 见此链接: https://github.com/evanw/esbuild/pull/3194

将vite升级为 5.0.0即可 从npm上可看到5.0.0用的是"esbuild": "^0.19.3",

解决办法二:

或者降低axios版本为^0.27.0

解决办法三:

修改vite.config.js中build.target: "es2015", 为es2020 不进行转换即可。

构建选项 | Vite 官方中文文档

额外 vite命令:

  vite(开发服务器): 用esbuild预编译完依赖就直接启动开发服务器,实际上是让浏览器接管了打包程序的部分工作: 会启动一个 服务器拦截由浏览器请求 ESM源码的请求。通过请求的路径找到目录下对应的文件做一下编译处理最终以 ESM的格式返回给浏览器

(ps: node_modules下面的依赖,vite会使用esbuild进行预构建缓存到/node_module/.vite目录下 )

vite dev、vite serve 是 vite 的别名

   vite build构建生产环境将确实用于打包您的代码 – 它将解析所有语句并将您的文件打包成一个(或几个)优化的chunks。但是,文件仍然将esbuild用于build.target指定的浏览器兼容目标的转换过程

所以转换这一块是相同的,无论是 dev还是build 都是由esbuild来处理。

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李庆政370

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值