2017-11-21 2 views
0

내 프로젝트에 React + Webpack 및 Babel Loader를 사용하고 있습니다. 에 응용 프로그램을 테스트 할 때, 그러나바벨 로더 및 Webpack + 구문 구문 오류

@ ./src/reducers/index.js 29:21-47 
@ ./src/index.js 

ERROR in ./src/reducers/logged_navbar.js 
Module build failed: SyntaxError: C:/xampp/htdocs/scoala-de-iarna/src/reducers/logged_navbar.js: Unexpected token (8:12) 

    6 |     let data = _.mapKeys(action.payload.data, 'id'); 
    7 |     state.navbarLogged = data; 
> 8 |     return { ...state }; 
    |       ^
    9 |   default: return state; 
    10 | } 
    11 | } 

: 나는 번들 코드를 생성하기 위해 노력하고있어 때

, 다음과 같은 오류가 ({... 상태}를 사용하면 내가 가지고있는 모든 감속기) 슬로우됩니다 개발자가 빌드 할 때이 오류는 표시되지 않습니다.

webpack.config.js :

var webpack = require('webpack'); 
var path = require('path'); 

var BUILD_DIR = path.resolve(__dirname, 'src/bundle'); 
var APP_DIR = path.resolve(__dirname, 'src'); 

var config = { 
    entry: APP_DIR + '/index.js', 
    output: { 
    path: BUILD_DIR, 
    filename: 'bundle.js' 
    }, 
    module: { 
    loaders: [ 
     { 
     test: /\.jsx?$/, 
     include: APP_DIR, 
     exclude: /node_modules/, 
     loader: 'babel-loader', 
     } 
    ] 
    } 
}; 

module.exports = config; 

.babelrc :

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

에 바벨 - 플러그인 - 변환 - 객체 나머지 확산을 설치하고 추가 'npm install --save-dev babel-preset-stage-2' ''프리셋 ': [ "es2015", "react", "stage-2"]' –

+0

@AnisSmail "은 디렉토리에 상대적인 사전 설정 '스테이지 -2'를 찾을 수 없습니다. 패키지를 지금 설치하십시오 –

+0

훌륭하게 해결되었습니다. 고마워요! –

답변

0

Solution 1

설치 및 사전에 "스테이지 2"를 추가

npm install --save-dev babel-preset-stage-2

"presets" : ["es2015", "react", "stage-2"]

Solution 2

설치하고 사전에 "스테이지 2"를 추가하려고 플러그인

npm install --save-dev babel-plugin-transform-object-rest-spread

{ "plugins": ["transform-object-rest-spread"] }

0

object spread operator 현재 여전히 3 단계 제안, 그리고 완성입니다. 이러한 이유로 바젤 코어에는 포함되지 않습니다.


바벨로 컴파일하려면, 은 바벨 설정stage 3 preset이 포함

{ 
    "presets" : ["es2015", "stage-3", "react"] 
} 
+0

2 단계에서 해본 적이 있습니까? 2 단계와 3 단계의 차이점은 무엇입니까? –

+1

'stage-2'는 2 단계와 3 단계 제안을 포함하고 있으며, 3 단계는 3 단계 제안만을 포함하고 있습니다. – Timo