Laravel:目前未启用对实验语法“classProperties”的支持
Posted
技术标签:
【中文标题】Laravel:目前未启用对实验语法“classProperties”的支持【英文标题】:Laravel: Support for the experimental syntax 'classProperties' isn't currently enabled 【发布时间】:2021-04-26 19:10:33 【问题描述】:在我的资源/app.js 中,我需要自己编写的验证脚本。编译 (npm run dev) 我的 javascript 文件时,我收到以下警告。
Module build failed (from ./node_modules/babel-loader/lib/index.js):
SyntaxError: /resources/js/myvendor/small-form-validator.js: Support for the experimental syntax 'classProperties' isn't currently enabled (2:13):
我的文件:
app.js
require('./bootstrap');
require('./myvendor/small-form-validator');
/resources/js/myvendor/small-form-validator.js
class SmallFormValidator
errMsgs =
required: 'This field is required!',
string: 'Not valid string.',
...
我的 package.json
"private": true,
"scripts":
"dev": "npm run development",
"development": "mix",
"watch": "mix watch",
"watch-poll": "mix watch -- --watch-options-poll=1000",
"hot": "mix watch --hot",
"prod": "npm run production",
"production": "mix --production"
,
"devDependencies":
"axios": "^0.21",
"bootstrap": "^4.0.0",
"jquery": "^3.2",
"laravel-mix": "^6.0.6",
"lodash": "^4.17.19",
"popper.js": "^1.12",
"postcss": "^8.1.14",
"resolve-url-loader": "^3.1.0",
"sass": "^1.15.2",
"sass-loader": "^8.0.0"
系统抱怨errMsgs = ...之后的赋值运算符(“=”字符)。
问题是我用类样式而不是原型样式编写我的 javascript 吗?
更新
在我的情况下,解决方案是在根目录中创建一个新的 .babelrc 文件,其中包含加载 Babel plugin-proposal-class-properties 插件的顺序。
"plugins": ["@babel/plugin-proposal-class-properties"]
查看 codedge 的正确答案!
【问题讨论】:
【参考方案1】:你需要在你的项目根目录下创建一个.babelrc
并添加
"plugins": ["@babel/plugin-proposal-class-properties"]
然后运行npm install --save-dev @babel/plugin-proposal-class-properties
安装软件包,然后运行npm run watch
(分别为npm run dev
)编译所有内容。
【讨论】:
这个解决方案对我有用。可以在 webpack.mix.js 中配置这个插件吗?将所有设置都放在一个文件中?以上是关于Laravel:目前未启用对实验语法“classProperties”的支持的主要内容,如果未能解决你的问题,请参考以下文章
目前未启用对实验语法'classProperties'的支持(14:13)
如果已启用,如何修复“当前未启用对实验语法 'classProperties' 的支持”错误?
vue 和 jest 的“当前未启用对实验语法 'jsx' 的支持”