需要一个正确的eslintrc for async / await - 使用7.6+ nodejs

时间:2017-05-25 00:14:03

标签: node.js async-await eslint

使用最新版本的nodejs 7.6+,我开始使用async / await。

我使用的是jshint但是根据我的阅读,他们目前支持这种语法,有些建议使用eslint。

好吧,我设置了eslint,但是唉..它也标志着异步功能。
Parsing error: Unexpected token init (Fatal)

我知道没有什么不对,因为我的代码运行正常,它只是linter。如果我注释掉异步函数,它只会标记下一个。事实上,eslint只会标记出这个错误的第一个异步而不是所有这些错误(那是什么?)

这是使用init向导创建的eslintrc文件。我希望只是要求节点和es6 for env就足够了......显然不是。

module.exports = {
    "env": {
        "es6": true,
        "node": true
    },
    "extends": "eslint:recommended",
    "rules": {
        "indent": [
            "error",
            "tab"
        ],
        "linebreak-style": [
            "error",
            "unix"
        ],
        "quotes": [
            "error",
            "single"
        ],
        "semi": [
            "error",
            "never"
        ]
    }
};

修复是什么?

我已经尝试了几个版本的.eslintrc,甚至看到有一些与eslint repo有关的问题,但没有人帮我解决这个问题。我不认为这是一个错误,只是缺少一些关于使用commonjs(没有babel)为本地nodejs正确设置eslint的东西。

谁知道即使我不使用babel,也可能需要babel插件来完成这项工作?如果这是真的,我该如何设置它。

1 个答案:

答案 0 :(得分:27)

由于async / await是ES2017功能,您需要将其添加到.eslintrc.js

module.exports = {
    // ...
    "parserOptions": {
        "ecmaVersion": 2017
    },
    // ...
}