2016-03-25 4 views
9

私は以下の名前のエクスポートを持つindex.jsファイルを持っています。名前付きエクスポートで予期しないトークンを解析すると、eslintがスローされます

export Main from './Main/Main' 

しかし、eslintはこれを好きなアプリが正常に動作しているようなぜ私はよく分からないエラー

Parsing error: Unexpected token Main 

をスローし、私はそれが有効な構文だとは考えていません。

マイ.eslintrcファイルはこの

{ 
    env: { 
    es6: true, 
    browser: true 
    }, 
    parserOptions: { 
    ecmaVersion: 6, 
    sourceType: "module", 
    ecmaFeatures: { 
     jsx: true, 
     experimentalObjectRestSpread: true 
    } 
    }, 
    plugins: [ 
    "react", 
    ], 
    extends: ["eslint:recommended", "plugin:react/recommended", "standard"], 
    "rules": { 
    "comma-dangle" : [2, "always-multiline"], 
    "semi": [2, "never"], 
    "no-extra-semi": 2, 
    "jsx-quotes": [2, "prefer-single"], 
    "react/jsx-boolean-value": [2, "always"], 
    "react/jsx-closing-bracket-location": [2, {selfClosing: "after-props", nonEmpty: "after-props"}], 
    "react/jsx-curly-spacing": [2, "never", {"allowMultiline": false}], 
    "react/jsx-max-props-per-line": [2, {maximum: 3}], 
    "react/jsx-no-literals": 2, 
    "react/sort-prop-types": 2, 
    "react/self-closing-comp": 2, 
    "react/sort-comp": 2 
    }, 
} 
+0

あなたが仕様を調べることで確認することができますように、それは、有効な構文ではありません。 org/ecma-262/6.0/index.html#table-42。正しい解決策は ''/Main/Main ''の輸出とそれがどのように行われるかにかかっています。 –

+1

これは構文の提案ですが、有効にする必要があります。 – loganfsmyth

+0

@FelixKlingあなたが正しいです。ここからアイデアを得たhttps://github.com/erikras/react-redux-universal-hot-example/blob/master/src/components/index.jsヘッドアップありがとう! –

答えて

11

のように見えるが、それを考え出しました。実験的な機能なので、私はeslintパーサーとしてbabel-eslintを有効にする必要があります。私は別の理由で同じエラーを得たので、私は間違っていたところ

今私の.eslintrcこの

{ 
    parser: "babel-eslint", 
    env: { 
    es6: true, 
    browser: true 
    }, 
    parserOptions: { 
    ecmaVersion: 6, 
    sourceType: "module", 
    ecmaFeatures: { 
     jsx: true, 
     experimentalObjectRestSpread: true 
    } 
    }, 
    plugins: [ 
    "react", 
    ], 
    extends: ["eslint:recommended", "plugin:react/recommended", "standard"], 
    "rules": { 
    "comma-dangle" : [2, "always-multiline"], 
    "semi": [2, "never"], 
    "no-extra-semi": 2, 
    "jsx-quotes": [2, "prefer-single"], 
    "react/jsx-boolean-value": [2, "always"], 
    "react/jsx-closing-bracket-location": [2, {selfClosing: "after-props", nonEmpty: "after-props"}], 
    "react/jsx-curly-spacing": [2, "never", {"allowMultiline": false}], 
    "react/jsx-max-props-per-line": [2, {maximum: 3}], 
    "react/jsx-no-literals": 2, 
    "react/sort-prop-types": 2, 
    "react/self-closing-comp": 2, 
    "react/sort-comp": 2 
    }, 
} 
+5

この実験的な機能がbabel-eslintを必要とする唯一の理由で、オーバーヘッドに対処したくない場合は、 './Main/Main ';'から 'export {default as Main}を使うことができますデフォルトのパーサーで正常に動作します。 – btmills

+0

@btmillsそれは素晴らしい洞察です。ありがとうございました! –

+0

素晴らしい、これは私のためのエラーを修正した、 – xckpd7

0

のように見え、ここにあります:

を使用すると、原子パッケージの開発とバベルを使用している場合は、すべてのファイルの初めに、use babelによって活性化されます。

use babelのように、のようにファイルの冒頭にある必要があります。それの前のスペースがそれを非アクティブ化し、その後、jsエンジンがあなたの輸出声明、または同様の `` `予期しないトークン輸出` ``を実行する。

間違っ:

use babel import { bla } from 'blub'

正しいます:http://www.ecma-international

use babel import { bla } from 'blub'

関連する問題