vue报错之“ Static class blocks are not enabled. Please add `@babel/plugin-transform-class-static-block”

文章讲述了在使用Vue和Monaco开发时遇到的关于静态类块的报错,由于JavaScript高级语法未被Babel默认转换,需要安装并配置Babel插件`@babel/plugin-transform-class-static-block`来解决问题。

背景

我在使用vue+monaco写项目时,项目出现了以下报错:

解释

这个报错信息提示的是静态类块(因为在JavaScript中使用了类语法,但没有相应的Babel插件来转换这种高级语法特性)不被支持。因为Babel默认只转换ES5语法,所以需要添加对应的Babel插件来实现转换。

解决方案

 1.安装Babel插件:

npm install @babel/plugin-transform-class-static-block

  2. 在Babel配置文件(比如.babelrcbabel.config.js)中添加插件:

plugins: ["@babel/plugin-transform-class-static-block"],

3.重新运行项目,问题解决。

ERROR in ./node_modules/pdfjs-dist/build/pdf.mjs Module build failed (from ./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js): SyntaxError: D:\gentables_us\webui\node_modules\pdfjs-dist\build\pdf.mjs: Static class blocks are not enabled. Please add `@babel/plugin-transform-class-static-block` to your configuration. 12648 | } 12649 | } > 12650 | class PDFWorker { | ^ 12651 | #capability = Promise.withResolvers(); 12652 | #messageHandler = null; 12653 | #port = null; at File.buildCodeFrameError (D:\gentables_us\webui\node_modules\@babel\core\lib\transformation\file\file.js:205:12) at NodePath.buildCodeFrameError (D:\gentables_us\webui\node_modules\@babel\traverse\lib\path\index.js:98:21) at shouldTransform (D:\gentables_us\webui\node_modules\@babel\helper-create-class-features-plugin\lib\features.js:114:16) at PluginPass.Class (D:\gentables_us\webui\node_modules\@babel\helper-create-class-features-plugin\lib\index.js:101:44) at newFn (D:\gentables_us\webui\node_modules\@babel\traverse\lib\visitors.js:160:14) at NodePath._call (D:\gentables_us\webui\node_modules\@babel\traverse\lib\path\context.js:46:20) at NodePath.call (D:\gentables_us\webui\node_modules\@babel\traverse\lib\path\context.js:36:17) at NodePath.visit (D:\gentables_us\webui\node_modules\@babel\traverse\lib\path\context.js:82:31) at TraversalContext.visitQueue (D:\gentables_us\webui\node_modules\@babel\traverse\lib\context.js:86:16) at TraversalContext.visitMultiple (D:\gentables_us\webui\node_modules\@babel\traverse\lib\context.js:61:17) at TraversalContext.visit (D:\gentables_us\webui\node_modules\@babel\traverse\lib\context.js:107:19) at traverseNode (D:\gentables_us\webui\node_modules\@babel\traverse\lib\traverse-node.js:22:17) at NodePath.visit (D:\gentables_us\webui\node_modules\@babel\traverse\lib\path\context.js:88:52) at TraversalContext.visitQueue (D:\gentables_us\webui\node_modules\@babel\traverse\lib\context.js:86:16) at TraversalContext.visitSingle (D:\gentables_us\webui\node_modules\@babel\traverse\lib\context.js:65:19) at TraversalContext.visit (D:\gentables_us\webui\node_modules\@babel\traverse\lib\context.js:109:19) at traverseNode (D:\gentables_us\webui\node_modules\@babel\traverse\lib\traverse-node.js:22:17) at traverse (D:\gentables_us\webui\node_modules\@babel\traverse\lib\index.js:52:34) at transformFile (D:\gentables_us\webui\node_modules\@babel\core\lib\transformation\index.js:82:31) at transformFile.next (<anonymous>) at run (D:\gentables_us\webui\node_modules\@babel\core\lib\transformation\index.js:24:12) at run.next (<anonymous>) at transform (D:\gentables_us\webui\node_modules\@babel\core\lib\transform.js:22:33) at transform.next (<anonymous>) at step (D:\gentables_us\webui\node_modules\gensync\index.js:261:32) at D:\gentables_us\webui\node_modules\gensync\index.js:273:13 at async.call.result.err.err (D:\gentables_us\webui\node_modules\gensync\index.js:223:11) @ ./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/aisheet5/index.vue?vue&type=script&lang=js 30:0-39 @ ./src/aisheet5/index.vue?vue&type=script&lang=js 1:0-232 1:0-232 1:233-454 1:233-454 @ ./src/aisheet5/index.vue 2:0-56 3:0-51 3:0-51 8:49-55 @ ./src/router/index.js 312:49-81 @ ./src/main.js 12:0-30 69:8-14 102:0-17
07-31
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值