如何将 React JSX 文件转换为简单 JavaScript 文件 [离线转换]

How to convert react JSX files to simple JavaScript file [offline transformation]

我是 react.js 的新手。刚开始学习它。所以我的问题可能看起来很愚蠢,但请回答。

我使用以下代码创建了一个简单的 .js 文件:

var Hello=React.createClass({
    render: function(){
        return (<h1>Hello World</h1>);
    }
});

它采用 JSX 语法并将其转换为简单的 JavaScript 文件我使用了以下命令:

babel --preset react JSX_Files --watch --out-dir public/javascripts

这里 JSX_Files 是我的源文件夹,public/javascripts 是我要转换的文件夹。 js 文件。

但我在转换时遇到以下错误:

SyntaxError: JSX_Files/example.js: Unexpected token (3:16)
  1 | var Hello=React.createClass({
  2 |     render: function(){
> 3 |         return (<h1>Hello World</h1>);
    |                 ^
  4 |     }
  5 | });

但是当我使用 Babel REPL (http://babeljs.io/repl/) 时,它转换它没有任何错误。

现在请告诉我哪里做错了。为什么离线转换时出现语法错误

尝试 babel --presets react JSX_Files --watch --out-dir public/javascripts(预设结束时的 s)。

如果您使用的是 babel-cli,则需要使用插件将 jsx 语法转换为浏览器可以理解的 js 语法。 请参阅以下 link: http://babeljs.io/docs/plugins/transform-react-jsx/ 你需要安装 babel-plugin-transform-react-jsx 插件并像这样在 .babelrc 文件中使用它:

{
  "plugins": ["transform-react-jsx"]
}

那么你的 babel 命令应该可以工作了。