javascript - 如何正确地将 react 导入到 node-webkit 应用程序中?

标签 javascript node.js reactjs node-webkit

我正在尝试创建一个 node-webkit 应用程序,并且我想使用 react.js 作为我的框架。在尝试使用react并创建一些组件后,我尝试在 node-webkit 应用程序中按如下方式使用它:

'use strict';

require('react');

每当我打开我的 node-webkit 应用程序时,它在正文末尾包含上述脚本,我就会收到错误消息:

ReferenceError: document is not defined
at Object.<anonymous> (C:\Users\rtol\Dropbox\Code\Node- Webkit\WallpaperManager3.0\node_modules\react\lib\CSSPropertyOperations.js:31:7)
....

我做错了什么吗?我找到的所有文档都表明这是在使用 node.js 时包含 react 的正确方法。我已经安装了 npm react,根据 package.json,它是 0.13.2 版本。

例如 react-nodewebkit初学者工具包具有如下 index.jsx。

var React = require('react');
var HelloWorld = require('./components/HelloWorld.jsx');

React.render(<HelloWorld />, document.getElementById('content'));

所以我实在想不通为什么它不起作用。

最佳答案

NW.js(node-webkit 被重命名为)有两个可以执行脚本的上下文——浏览器或 Node。参见 Determining the context of a script在 NW.js 维基上

请注意,您链接到的起始项目使用 browserify 捆绑了它的 JavaScript,并通过 <script> 加载它。标签。结果,代码在浏览器上下文中运行,其中 document可用。

如果您使用 require()直接导入您的代码,它在 Node 上下文中运行,其中 document不可用。如果你有进一步的了解,如果 React 是用 require() 导入的,你也会遇到使用 React 的问题。 ,因为它会检测它是否在浏览器上下文中执行并相应地运行。

关于javascript - 如何正确地将 react 导入到 node-webkit 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29944526/

相关文章:

ReactJS 和 Typescript useContext - 类型上不存在属性

javascript - 在同一个 CSS 水平菜单中组合复选框和按钮

javascript - 是什么在我的标记中强制使用内联样式?

node.js - sequelize 迁移未运行

reactjs - 强制 NeDB 使用 Electron 创建本地文件

reactjs - react redux解析错误: Unexpected character '​'

javascript - 当一系列 jquery ajax 调用完成时执行一个函数(!)

javascript - 如何获取 iframe 相对于顶部窗口视口(viewport)的位置?

javascript - 仅在特定日期和时间运行 cron 作业

javascript - child_process spawnSync 使用 for 循环迭代 python stdout 结果