为什么原子包 linter-eslint 不能识别模板文字?
Why doesn't atom package linter-eslint recognize template literals?
ES6 模板文字的 documentation 具有以下语法示例:
`string text ${expression} string text`
依此,我的函数是:
function madLib (verb, adjective, noun) {
return `We shall ${verb} the ${adjective} ${noun}.`;
}
在控制台中,这按预期输出:
We shall fly the iridescent zoo.
然而,eslinter 包在第一个反勾时抱怨致命的解析错误,引用
Unexpected character '`'
这是为什么?
(关于文字的 是关于语法错误的——找不到任何其他相关的 eslinter 帖子。)
ESLint 默认配置为仅 lint ES5 代码。模板文字是 ES6 规范的一部分。因此,解析器将无法解析您的 JavaScript 代码并出现致命错误。您需要在项目的根目录中创建一个 .eslintrc
文件并将 ecmaVersion
设置为 6。有关配置 ESLint 的更多信息,请参阅 http://eslint.org/docs/user-guide/configuring#specifying-parser-options
这是您可以做到的方式。在 .eslintrc.js 中更改 "quotes" 的值(对我来说是单身),如下所示:
"quotes": ["error", "single", {
avoidEscape: true,
allowTemplateLiterals: true
}],
你可以使用反引号避免转义!
ES6 模板文字的 documentation 具有以下语法示例:
`string text ${expression} string text`
依此,我的函数是:
function madLib (verb, adjective, noun) {
return `We shall ${verb} the ${adjective} ${noun}.`;
}
在控制台中,这按预期输出:
We shall fly the iridescent zoo.
然而,eslinter 包在第一个反勾时抱怨致命的解析错误,引用
Unexpected character '`'
这是为什么?
(关于文字的
ESLint 默认配置为仅 lint ES5 代码。模板文字是 ES6 规范的一部分。因此,解析器将无法解析您的 JavaScript 代码并出现致命错误。您需要在项目的根目录中创建一个 .eslintrc
文件并将 ecmaVersion
设置为 6。有关配置 ESLint 的更多信息,请参阅 http://eslint.org/docs/user-guide/configuring#specifying-parser-options
这是您可以做到的方式。在 .eslintrc.js 中更改 "quotes" 的值(对我来说是单身),如下所示:
"quotes": ["error", "single", {
avoidEscape: true,
allowTemplateLiterals: true
}],
你可以使用反引号避免转义!