2013-11-23 97 views
22

我爱syntastic为JavaScript,但我现在用的是新ES6 module tranpiler和syntastic是不满意这些类型的语句:syntastic抱怨ES6模块语法

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

反正是有,我可以保持syntastic安静这个类型的声明?

回答

54

Syntastic will use JSHint to check JavaScript syntaxif it's available(我推荐通过jslint)。

JSHint supports es6 syntax with the esnext flag,其中包括对exportimport模块语法的支持。

我建议adding a .jshintrc file到您的项目,以控制JSHint的行为(因而Syntastic的)为您的整个项目:

{ 
    "esnext": true 
} 

注意:要小心,因为使用esnext标志将增加对es6's new language sytax所有支持JSHint目前支持,而不仅仅是模块语法。

注意esnext现在已被弃用,支持esversion语法。

{ 
    "esversion": 6 
} 
+1

都尝试这些设置。 – AdamW

18

要解决这个问题,我建议以下步骤如下建议:Configure Vim for React

安装eslintbabel-eslint

npm install -g eslint babel-eslint 

在项目中创建一个本地.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'] 
+0

都没有工作,除了最后一个都有意义..你在哪儿放了'let g:syntastic_javascript_checkers = ['eslint']'?对不起,你的.vimrc文件中的zed/syntastic – unsynchronized

+0

有点新奇,它通常位于'〜/ .vimrc'中。但是你也可以在其他地方拥有本地的.vimrc文件。 – mjwatts