我已经尝试了一段时间,以使@babel/plugin-proposal-class-properties
插件与@babel/eslint-parser
和eslint
很好地配合使用,
这是我的.eslintrc.js
:
...
"parser": "@babel/eslint-parser",
"parserOptions": {
"ecmaVersion": 11,
"requireConfigFile": false,
},
"plugins": [
"@babel",
],
...
这些是已安装的相关软件包:
+-- @babel/core@7.11.1
+-- @babel/eslint-parser@7.11.3
+-- @babel/eslint-plugin@7.11.3
+-- @babel/plugin-proposal-class-properties@7.10.4
+-- eslint@7.7.0
在此配置下,ESLint出现以下错误消息:
Parsing error: \eg\example.js: Support for the experimental syntax 'classPrivateProperties' isn't currently enabled (xx:yy): (Fatal)
但是,如果我将@babel/plugin-proposal-class-properties
添加到plugins
中的.eslintrc.js
中,就像这样:
"plugins": [
"@babel",
"@babel/plugin-proposal-class-properties",
],
我收到此错误:
Error while running ESLint: Failed to load plugin '@babel/plugin-proposal-class-properties' declared in '.eslintrc.js': Cannot find module '@babel/eslint-plugin-plugin-proposal-class-properties'.
似乎这不是在@babel/eslint-parser
中为.eslintrc.js
声明插件的正确方法。不过,我怀疑由于此引号here:
@babel/eslint-parser
还支持通过ESLint配置应用Babel配置。
实际上可以在.eslintrc
中声明babel插件吗?如果可以的话,究竟如何?
答案 0 :(得分:4)
实际上比我想象的要简单...
因此,事实证明,由于@babel/plugin-proposal-class-properties
是babel插件,因此需要在babel的配置的plugins
属性中声明它。根据{{3}},这些可以通过babelOptions
属性来传递。
因此,它真的是如此简单:
...
"parserOptions": {
...
"babelOptions": {
"plugins": [
"@babel/plugin-proposal-class-properties",
...
],
},
},
"plugins": [
"@babel",
],
...