2015-04-29 59 views
1

我正在嘗試創建一個node-webkit應用程序,並且我想使用react.js作爲我的框架。試圖作出反應,並創造了一些組件後,我想作爲一個節點的WebKit應用程序如下使用它:如何正確地將反應導入到node-webkit應用程序中?

'use strict'; 

require('react'); 

每當我打開我的節點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) 
.... 

我做錯了什麼?我發現的所有文檔都表明,這將是使用節點時包含反應的正確方法。根據package.json,我安裝了npm反應,它的版本是0.13.2。

例如,react-nodewebkit入門工具包的index.jsx如下所示。

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

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

所以我真的不明白爲什麼它不起作用。

+0

您是否在您的節點模塊上安裝了反應? 'npm安裝反應'? – Raulucco

+0

是的,我還安裝了其他模塊併成功導入它們以驗證這不是require的問題。 – Robin

+0

是的,問題不在導入反應,但文件不存在,因爲你沒有在瀏覽器上運行腳本作爲@insin說 – Raulucco

回答

5

NW.js(這是node-webkit重命名的內容)有兩個可以在其中執行腳本的上下文 - 瀏覽器或節點。請參閱NW.js上的Determining the context of a script

請注意,您鏈接的初始項目將使用browserify捆綁其JavaScript,並通過<script>標記加載它。結果代碼正在瀏覽器上下文中運行,其中document可用。

如果您直接使用require()導入您的代碼,該代碼正在Node上下文中運行,其中document不可用。如果您還有任何進一步的問題,如果使用React進行導入的話,您也會碰到問題,因爲它會檢測它是否在瀏覽器上下文中執行並相應地運行。

相關問題