babel-node 无法识别 jsx <

babel-node not recognizing jsx <

我正在尝试 运行 一些使用 ReactJSX 的代码使用 babel-node,这是 babel-cli 的一部分。据我所知,代码是正确的,我正在按预期使用 babel-node,但希望有人能提供更多见解。

生成以下错误。

(!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)

如果有帮助,我可以提供额外的代码片段,但错误消息中已包含有问题的块。感谢您提供的任何见解!

如果你是 运行 版本 6.x 的 babel,你需要使用 babel react 预设(如所述 here)。

If you are using babel 6.x, you will need to install the relevant preset/plugins. To get started, you can run npm install -g babel babel-preset-react and then run babel --presets react --watch src/ --out-dir lib/. For more information: check out the babel 6 blog post