【问题标题】:How can we use react jsx templates in node-webkit我们如何在 node-webkit 中使用 react jsx 模板
【发布时间】:2015-06-17 11:44:37
【问题描述】:

我在 node-webkit 中使用 react 的 jsxtemplates 时遇到问题。基本问题归结为这一点;使用以下代码

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

会有 node-webkit 告诉我

Uncaught SyntaxError: Unexpected token

我一直在寻找,但没有找到令人满意的解决方案。我想出的最好的方法是将基于 jsx 的文件编译为正确的 js 并将它们存储在单独的目录中(使用 gulp)。但是这个解决方案让我很恼火,因为它意味着需要在技术上不存在的文件那里

还有哪些其他解决方案?

【问题讨论】:

标签: reactjs gulp node-webkit nw.js


【解决方案1】:

您可以使用node-jsx 要求.jsx 文件并适当地解析它们。

最简单的,你需要这样安装:

require('node-jsx').install({extension: '.jsx'})

然后将解析您以后需要的带有.jsx 扩展名的任何文件。

【讨论】:

    【解决方案2】:

    您无法像加载常规 JS 文件一样加载 JSX 文件。这里的问题是您的 JSX 文件被解释为标准 JS 文件。确保在 DOM 中像这样加载文件(注意text/jsx

    <script type="text/jsx" src="yourscript.js"></script>
    

    在您的 HEAD 中,您还首先加载了 React JSXTransformer,以便可以在浏览器中进行转换。

    来源:React's Getting started

    【讨论】:

    • 我想使用require 来加载JavaScript/JSX 文件。否则我最终会得到一个无法维护的脚本标签列表。你看我有什么办法吗? Browserify 肯定会有所帮助,但这会与节点的原生 require 混淆。
    • 你可以在一个文件中定义多个 React 类,你不需要为每个文件创建一个,没关系。您可以做的是使用 require.js 或 like jsx-requirejs 以便在开发中单独加载文件,但对于使用 r.js 的生产,所有 jsx 文件都被压缩为一个。
    • 你从根本上误解了这里的问题——Lukas 想使用 node 的 require,这意味着在服务器端,而不是在浏览器中。
    猜你喜欢
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 2021-07-10
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    相关资源
    最近更新 更多