我无法找到使用babel的正确方法,允许我在服务器端使用jsx。
对于babel,不推荐使用Node-jsx。好像babel-core/register
似乎应该被使用,但我仍然会遇到意想不到的令牌问题。
我创建了一个包含问题的回购。
https://github.com/pk1m/Stackoverflow-helpme
当我运行node app
或npm run watch-js
时,我不断获得指向JSX代码的意外令牌'<'
如何让babel转向JSX,或者我完全离开了,谢谢。
答案 0 :(得分:22)
您需要使用babel-register
(npm 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/