2015-11-02 27 views
0

我想運行一些代碼,使用ReactJSX使用babel-node,它是babel-cli的一部分。據我所知,代碼是正確的,我按照預期使用babel-node,但希望有人能提供更多的見解。babel-node不能識別jsx <

生成以下錯誤。

(!535)-> babel-node server.js 
/Users/eprouty/.nvm/versions/v5.0.0/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/index.js:520 
     throw err; 
    ^

SyntaxError: /Users/ep/git/dgcastle/server.js: Unexpected token (60:51) 
    58 |     res.status(302).redirect(redirectLocation.pathname + redirectLocation.search) 
    59 |    } else if (renderProps) { 
> 60 |     var html = ReactDOM.renderToString(<RoutingContext {...renderProps} />); 
    |             ^
    61 |     var page = jade.renderFile('views/index.jade', {html: html}); 
    62 |     res.status(200).send(page); 
    63 |    } else { 
    at Parser.pp.raise (/Users/ep/.nvm/versions/v5.0.0/lib/node_modules/babel-cli/node_modules/babylon/lib/parser/location.js:24:13) 
    at Parser.pp.unexpected (/Users/ep/.nvm/versions/v5.0.0/lib/node_modules/babel-cli/node_modules/babylon/lib/parser/util.js:91:8) 
    at Parser.pp.parseExprAtom (/Users/ep/.nvm/versions/v5.0.0/lib/node_modules/babel-cli/node_modules/babylon/lib/parser/expression.js:507:12) 
    at Parser.pp.parseExprSubscripts (/Users/ep/.nvm/versions/v5.0.0/lib/node_modules/babel-cli/node_modules/babylon/lib/parser/expression.js:260:19) 
    at Parser.pp.parseMaybeUnary (/Users/ep/.nvm/versions/v5.0.0/lib/node_modules/babel-cli/node_modules/babylon/lib/parser/expression.js:240:19) 
    at Parser.pp.parseExprOps (/Users/ep/.nvm/versions/v5.0.0/lib/node_modules/babel-cli/node_modules/babylon/lib/parser/expression.js:171:19) 
    at Parser.pp.parseMaybeConditional (/Users/ep/.nvm/versions/v5.0.0/lib/node_modules/babel-cli/node_modules/babylon/lib/parser/expression.js:153:19) 
    at Parser.pp.parseMaybeAssign (/Users/ep/.nvm/versions/v5.0.0/lib/node_modules/babel-cli/node_modules/babylon/lib/parser/expression.js:120:19) 
    at Parser.pp.parseExprListItem (/Users/ep/.nvm/versions/v5.0.0/lib/node_modules/babel-cli/node_modules/babylon/lib/parser/expression.js:966:16) 
    at Parser.pp.parseCallExpressionArguments (/Users/ep/.nvm/versions/v5.0.0/lib/node_modules/babel-cli/node_modules/babylon/lib/parser/expression.js:336:20) 

我可以提供額外的代碼片段,如果這將有所幫助,但有問題的塊已包含在錯誤消息中。感謝您提供的任何見解!

+0

請提供您正在使用的軟件包的鏈接,沒有那個名稱,是不是指node-babel?我會先使用一個非棄用/積極維護的軟件包,比如'babel' –

回答

4

如果您正在運行babel版本6.x,則需要使用babel react預設(如所述的here)。

如果您使用的是babel 6.x,則需要安裝相關的預設/插件。要開始,您可以運行npm install -g babel babel-preset-react,然後運行babel --presets react --watch src/ --out-dir lib/。欲瞭解更多信息,請查看:babel 6 blog post

+0

謝謝!完美工作,錯過了新版本的babel。下次我會問這樣的問題時,一定會發布版本信息。 – EEP

+1

很好的答案,謝謝! – davidrl1000