2016-01-22 168 views
1

試圖調試幾個小時這個錯誤無法找到它有什麼問題。奇怪的錯誤! app.jswebpack錯誤意外令牌

var React = require('react'); 

var app = React.createClass({ 
    render() { 
     return (<h1>Hello World from Reach</h1>); 
    } 
}) 

module.export = app; 

APP-client.js

var React = require('react'); 
var App = require('./components/app'); 

React.render(<App />, document.getElementById('react-container')); 

ERROR in ./app-client.js 
Module build failed: SyntaxError: /Users/alice/reactjs/app-client.js: Unexpected token (4:13) 
2 | var app = require('./components/app'); 
3 | 
4 | React.render(<app/>, document.getElementById('react-container')); 
+0

什麼在./components/app? –

+0

應該是'App'嗎? – pherris

+3

將'var app = require('./ components/app')'替換爲'var App = require('./ components/app')';和 '' - >''據此 –

回答

2

你有語法錯誤的錯誤。在創造了app.js文件類取代render()render: function() 所以你app分配應該看起來像下面的代碼:

var app = React.createClass({ 
    render: function(){ 
     return (<h1>Hello World from Reach</h1>); 
    } 
}) 
+0

render(){}沒有任何問題。這是ES6。 –

1

我認爲這個問題是在你的webpack.config.js。爲了成功構建jsx和ES6,您需要添加更多的裝載器。這裏是我建議的js loader配置,看看它是否適合你。

loaders: [ 
    { 
     test: /.jsx?$/, 
     loader: 'babel-loader', 
     exclude: /node_modules/, 
     query: {     
      presets: ['es2015', 'react', 'stage-0'] 
     } 
}, 

的ES2015預設handles ES2015 features, you need to install via npm as described here. 你一定需要react preset to parse jsx. Stage 0 handles some of the latest javascript features.

確保作爲鏈接描述您通過NPM安裝這些改變你的網頁pack.config.js。