如何在没有 npm 的情况下使用构建脚本将 JSX 转换为 JS?

How can I convert JSX to JS without npm using a build script?

我有一个包含 html 文件的应用程序,如下所示:

<!-- ... existing HTML ... -->

<div id="input-field"></div>

<!-- ... existing HTML ... -->

  <!-- Load React. -->
  <script src="https://unpkg.com/react@18/umd/react.development.js" crossorigin></script>
  <script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js" crossorigin></script>

  <!-- Load our React component. -->
  <script src="InputField.js"></script>
</body>

我还有一个类似这样的 React 组件:

class InputField extends React.Component {
    render(){
        return(
            <div>
                <h1>test</h1>
            </div>
        )
    }
}

ReactDOM.render(<InputField />, document.getElementById('input-field'))

您可能已经注意到,react 组件使用的是 jsx 语法。我希望能够 运行 构建脚本,将我所有的 jsx 文件转换为 js,以便我的浏览器可以读取和呈现组件。

谢谢

首先,您需要添加 Babel 来转译您的 JSX,这就是将此行添加到 html 文件中的方法:

<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>

然后您需要将 type 属性 添加到您的 InputField 脚本中,如下所示:

<script type="text/babel" src="InputField.js"></script>

完整代码如下:


<!-- ... existing HTML ... -->

<div id="like_button_container"></div>

<!-- ... existing HTML ... -->

  <!-- Load React. -->
  <script src="https://unpkg.com/react@18/umd/react.development.js" crossorigin></script>
  <script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js" crossorigin></script>
  <!-- Babel js -->
  <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>


  <!-- Load our React component. -->
  <script type="text/babel" src="InputField.js"></script>
</body>