React Serverside呈现意外的令牌,JSX和Babel

时间:2015-11-02 06:59:31

标签: reactjs babeljs react-router react-jsx

我无法找到使用babel的正确方法,允许我在服务器端使用jsx。

对于babel,不推荐使用Node-jsx。好像babel-core/register似乎应该被使用,但我仍然会遇到意想不到的令牌问题。

我创建了一个包含问题的回购。

https://github.com/pk1m/Stackoverflow-helpme

当我运行node appnpm run watch-js时,我不断获得指向JSX代码的意外令牌'<'

如何让babel转向JSX,或者我完全离开了,谢谢。

1 个答案:

答案 0 :(得分:22)

您需要使用babel-registernpm i babel-register --save)。并在您的服务器上运行:

require('babel-register')({
    stage: 0
});

如果您没有使用实验性的babel功能,则可以省略第0阶段。您也可以选择将这些选项放在.babelrc中。

请注意,它仅适用于调用后所需的文件(因此它不会对您包含它的文件产生影响)。

您还可以在.babelrc文件中包含预设和其他选项。

babel 6x

npm i babel-register babel-preset-es2015 babel-preset-react --save

require('babel-register')({
    presets: ['es2015', 'react']
});

注意:还有0-2阶段的预设。

为了观看你在package.json中写的内容,你可以尝试一个CLI命令,就像facebook在note here中建议的那样(或者使用webpack):

babel --presets react es2015 --watch app/ --out-dir build/