Syntastic抱怨ES6模块语法问题

24

我喜欢Syntastic用于JavaScript,但我正在使用新的ES6模块转换器,而Syntastic对这些类型的语句感到不满意:

import Typeahead from './lib/components/ember-typeahead';

有没有方法可以让syntastic不再检查这种类型的语句?

2个回答

61

Syntastic将使用JSHint检查JavaScript语法如果可用(我推荐它比jslint更好)。

JSHint支持使用esnext标志的es6语法,其中包括对exportimport模块语法的支持。

我建议添加一个.jshintrc文件到您的项目中,以控制JSHint的行为(从而控制整个项目的Syntastic):

{
  "esnext": true
}

注意:使用 esnext 标志将添加对 JSHint 目前支持的 es6 新语言语法 的全部支持,而不仅仅是模块语法。 注意esnext 现已被弃用,推荐使用 esversion 语法。
{
  "esversion": 6
}

21

为了解决这个问题,我建议按照此处的建议执行以下步骤:为React配置Vim

安装eslintbabel-eslint

npm install -g eslint babel-eslint
在您的项目中创建本地.eslintrc配置文件,或者创建全局~/.eslintrc配置文件:
{
    "parser": "babel-eslint",
    "env": {
        "browser": true,
        "node": true
    },
    "settings": {
        "ecmascript": 6
    },
    "rules": {
        "strict": 0 // you can add more rules if you want
    }
}

最后,配置 syntastic 以使用 eslint

let g:syntastic_javascript_checkers = ['eslint']

嗯,除了最后一个之外都很清楚了。let g:syntastic_javascript_checkers = ['eslint']应该放在哪里?抱歉,我在zed/syntastic方面有点新手。 - unsynchronized
1
在你的.vimrc文件中,通常位于~/.vimrc。但是你也可以有本地的.vimrc文件,所以它可能在其他地方。 - user115014

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接