2016-01-22 170 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。