javascript 语法抱怨 ES6 模块语法

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/20160921/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-27 17:53:51  来源:igfitidea点击:

syntastic complaining about ES6 module syntax

javascriptvimecmascript-6syntastic

提问by dagda1

I love syntastic for javascript but I am using the new ES6 module tranpilerand syntastic is not happy about these type of statements:

我喜欢 JavaScript 的 Syntastic,但我使用的是新的ES6 模块 tranpiler,而 Syntastic 对这些类型的语句不满意:

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

Is there anyway that I can keep syntastic quiet about this type of statement?

无论如何,我可以对这种类型的语句保持句法安静吗?

回答by slindberg

Syntastic will use JSHint to check JavaScript syntaxif it's available(which I recommend over jslint).

Syntastic 将使用 JSHint 来检查 JavaScript 语法是否可用(我建议使用 jslint)。

JSHint supports es6 syntax with the esnextflag, which includes support for the exportand importmodule syntax.

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

I suggest adding a .jshintrcfileto your project to control JSHint's behavior (and thus Syntastic's) for your entire project:

我建议在你的项目中添加一个.jshintrc文件来控制整个项目的 JSHint 的行为(以及 Syntastic 的行为):

{
  "esnext": true
}

Note: be careful, since using the esnextflag will add support for allof es6's new language sytaxthat JSHint currently supports, not just the module syntax.

注意:要小心,因为使用该esnext标志将添加对JSHint当前支持的所有es6 新语言语法的支持,而不仅仅是模块语法。

Note: esnexthas now been deprecated in favour of the esversionsyntax.

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

{
  "esversion": 6
}

回答by gnerkus

To work around this, I'd suggest the following steps as recommended here: Configure Vim for React:

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

Install eslintand babel-eslint:

安装eslintbabel-eslint

npm install -g eslint babel-eslint

Create a local .eslintrcconfig in your project or a global ~/.eslintrcconfiguration:

.eslintrc在您的项目或全局~/.eslintrc配置中创建本地配置:

{
    "parser": "babel-eslint",
    "env": {
        "browser": true,
        "node": true
    },
    "settings": {
        "ecmascript": 6
    },
    "rules": {
        "strict": 0 // you can add more rules if you want
    }
}

Finally, configure syntasticto use eslint:

最后,配置syntastic使用eslint

let g:syntastic_javascript_checkers = ['eslint']