2015-11-02 118 views
6

我无法找到使用巴贝尔,让我在服务器端使用JSX的正确方法。阵营Serverside集团呈现意外的令牌,JSX和巴贝尔

节点JSX被废弃的通天塔。它似乎是babel-core/register是什么应该使用,但我仍然收到意想不到的令牌问题。

我创建了一个回购与遇到的问题IM。

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

当我运行node appnpm run watch-js我不断收到意外的标记指JSX代码 '<'。

我怎么通天transpile JSX,还是我完全脱落,谢谢。

+0

您还没有安装通天塔-loader。检查此项目的示例配置文件。 https://github.com/kriasoft/react-starter-kit –

回答

20

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

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

如果您不使用实验性babel功能,则可以省略阶段0。您也可以选择将这些选项放入.babelrc

注意,它只会为以后打电话的是(所以它不会对你的文件包括它的效果)所需的文件。

你也可以有一个.babelrc文件中的预置和其他选项。

对于通天6X

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

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

注:也有阶段0-2预设。

对于看着你写在你的package.json,你可以尝试像一个Facebook的CLI命令所提出的建议的说明here(或使用的WebPack):

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

好吧,我会尝试,当我回家。 JSX是一个实验性的babel功能吗? – pk1m

+1

@ pk1m没有JSX和其他ES6功能有效,0期是像ES7'static',和其他实验的东西提出的东西(静是好的,如果你使用的不是React.createClass React.Component) –

+0

OK,我使用'require('babel/register')',但它表示它已被弃用'require('babel-core/register')'。所以我用它来代替,如果你能看到我的git。仍然抛出错误的'<' – pk1m