chr*_*lee 5 ecmascript-6 eslint
我正在使用箭头功能,它抱怨解析错误:
Parsing Error: Unexpected token =
但是我的代码是有效的(请告诉我,如果我错了).另外,我已将.eslintrc设置设置为使用es6解析:
.eslintrc
{
"parserOptions": {
"ecmaVersion": 6,
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
class foo() {
// Doesn't like the line below
// even though it is valid:
namedFunction = () => {
}
}
Run Code Online (Sandbox Code Playgroud)
有办法解决这个错误?这在this特定功能的价值方面有很大的不同.
Jor*_*ing 14
您正在使用类字段(也称为属性初始化程序)语法,它不是ECMAScript 2015(ES6)的一部分,也不是ES2016或2017的一部分,因此不受ESLint的支持.这是目前的第3阶段提案.如果你想在ESLint中使用它,你需要使用babel-eslint.该页面描述了如何使用它,但要点是:
安装
Run Code Online (Sandbox Code Playgroud)$ npm install eslint babel-eslint --save-dev # or $ yarn add eslint babel-eslint -D注意: babel-eslint需要
babel/core@>=7.2.0运行有效的Babel配置文件.如果您尚未设置此功能,请参阅" Babel使用指南".建立
要使用babel-eslint,
"babel-eslint"必须parser在ESLint配置文件中指定(有关更多详细信息,请参见此处)..eslintrc.js
Run Code Online (Sandbox Code Playgroud)module.exports = { parser: "babel-eslint", };
Tom*_*eba 11
根据GitHub 存储库,在 2021 年,它似乎babel-eslint已被弃用,取而代之的是:@babel/eslint-parser
注意:babel-eslint 现在是 @babel/eslint-parser 并且已经进入了 Babel monorepo。
因此,要更新其他答案中的说明,您需要:
npm i eslint @babel/eslint-parser --save-dev
Run Code Online (Sandbox Code Playgroud)
然后确保您配置了parser密钥.eslintrc:
{
"parser": "@babel/eslint-parser",
...
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,由于 OP 没有提到运行时,我在 Node 12 中运行,所以我不需要 babel 来转译我的代码,但 ESlint确实需要 babel 来整理代码(听起来很奇怪,但这是我的理解)。所以我还需要一个基本的 babel 配置babel.config.json:
{
"presets": [
[
"@babel/env",
{
"targets": {
"node": "12"
}
}
]
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3928 次 |
| 最近记录: |