为什么原子包 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
    }],

你可以使用反引号避免转义!