2017-03-22 3 views
0

를 설치하고 수입 nodejs 응용 프로그램에 반응 반응 및 응용 프로그램의 js 파일의 시작에서 라우터 패키지를 반응하지만,이 오류를 얻을 :예기치 않은 예약어 '가져 오기'

: 내 app.js 파일에서

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

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이고 당신은 바벨과 같은 transpiler가 필요합니다.

이 작업을 진행하려면 먼저 몇 가지 패키지를 설치해야합니다 : 당신이하지 않으면,

"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

당신이 웹팩을 사용하는 경우 모듈 로더를 통해 바벨을로드해야합니다.

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

관련 문제