简体   繁体   English

babel-node无法识别jsx

[英]babel-node not recognizing jsx <

I am trying to run some code that uses React and JSX using babel-node , which is part of the babel-cli . 我正在尝试使用babel-node来运行一些使用ReactJSX代码,这是babel-cli的一部分 To the best of my knowledge the code is correct and I am using babel-node as expected, but hopefully someone can provide more insight. 据我所知,代码是正确的,并且按预期使用了babel-node ,但希望有人可以提供更多见解。

The following error is generated. 产生以下错误。

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

I can provide additional code snippets if that would help but the offending block is already included in the error message. 如果有帮助,我可以提供其他代码段,但错误消息中已包含有问题的代码段。 Thanks for any insight you can provide! 感谢您提供的任何见解!

If you are running version 6.x of babel, you need to use the babel react preset (as stated here ). 如果您正在运行通天6.x版本中,您需要使用巴贝尔反应预设(如说在这里 )。

If you are using babel 6.x, you will need to install the relevant preset/plugins. 如果使用的是babel 6.x,则需要安装相关的预设/插件。 To get started, you can run npm install -g babel babel-preset-react and then run babel --presets react --watch src/ --out-dir lib/ . 首先,您可以运行npm install -g babel babel-preset-react ,然后运行babel --presets react --watch src/ --out-dir lib/ For more information: check out the babel 6 blog post 有关更多信息:请查看babel 6博客文章

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM