2017-03-22 12 views
0

がインストールされ、輸入nodejsアプリに反応するが反応し、反応するルータのパッケージをアプリのjsファイルの先頭ではなく、このエラーを取得:予期しない予約語「輸入」

(function (exports, require, module, __filename, __dirname) { import React from 'react'; 
                   ^^^^^^ 
SyntaxError: Unexpected reserved word 

私app.jsファイルで

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import { 
    BrowserRouter as Router, 
    Route, 
    Link 
} from 'react-router-dom'; 

var express = require('express'), 
... 
+0

'import'文は最上位レベルのスコープでのみ発生します。関数内ではインポートできません。 –

+0

@jaredファイルの先頭にインポートしましたが、関数でインポートしませんでした – Jon

+0

*エラーでポストしたコードで*コード変換器によって適用されている可能性が高いラッパー関数*内にインポートステートメントが表示されます。あなたが元々書いたものではなく、実行する*コードは重要です。 –

答えて

0

あなたはES2015で、あなたはバベルのような蒸散器が必要です。

は、この作業を取得するには、最初にいくつかのパッケージをインストールする必要があります。そうしない場合、

"babel": { 
    "presets": [ "es2015", "react" ] 
} 

または:

$ npm install --save-dev babel-core babel-preset-es2015 babel-preset-react 

次に、あなたのpackage.jsonに以下を追加しますpackage.jsonを持っている場合は、以下を含む.babelrcというファイルを作成します。

{ 
    "presets": [ "es2015", "react" ] 
} 

正確な複製ではありませんが、それはthisと同じ回答でした。その答えは "robertklep"に感謝します。

UPDATE

あなたはWebPACKのを使用している場合は、モジュールローダを経由してバベルをロードしていることを確認してください。

module: { 
    loaders: [ 
     { 
     loader: 'babel-loader', 
     query: { 
      presets: ['react', 'es2015', 'stage-0'] 
     }, 
     test: /\.jsx?$/, 
     exclude: /(node_modules|bower_components)/ 
     }, 
} 
+0

私はbabelと他のすべてのパッケージをインストールしましたが、それでも動作しません:/そして上記のコードを追加しました – Jon

+0

Webpackを使用していますか? – alireza

+0

はい、webpackを使用しています。しかし、私はまだバンドルjsファイルを生成していません。また、 "babel": "babel"、 "webpack":package.jsonのスクリプトに "webpack"を追加しました – Jon

関連する問題