2015-08-30 44 views
30

是否可以直接使用npm模塊和React Native項目,就像npm install <module-name>在React項目中使用npm模塊一樣?在React Native項目中使用npm模塊

當然,我的意思是可以與React應用程序一起使用的模塊,即前端應用程序,它將在瀏覽器JS運行時運行,但不會在nodejs或iojs運行時運行,因爲React Native應用程序無法運行nodejs或iojs運行時。

+0

現在是2017年的任何更新? – NamNamNam

回答

29

嗯,這完全相反。 React Native實際上在io.js運行時間內運行,因此大多數純節點的javascript模塊都可以工作。另一方面,爲React.js編寫的大多數前端模塊不適用於React-Native。

React Native不使用HTML DOM,也不使用CSS,因爲我們從網上知道它。它用原生視圖表示替換了CSS/HTML DOM。因此,任何應該使用HTML並在瀏覽器中顯示的前端軟件包都不起作用。

另一方面,任何純javascript模塊,並在node.js/io.js中運行的模塊都可以在react-native中運行。例如,我很確定Facebook在其反應本機應用程序(它是一個通過Facebook的Open Graph API進行有效通信並允許訪問Facebook用戶數據的JavaScript庫)中使用其「中繼」數據訪問庫。

執行此操作的方法與其他node.js/io.js應用程序中的相同。只需運行

NPM安裝模塊 --save

和你做(的package.json將與該模塊的依賴性而被自動更新)。然後你可以照常使用包裝。

+0

前端庫我的意思是沒有HTML的CSS,像superagent,socket.io等css。排除http服務器和類似Koa的包裝,表達,因爲它們運行在iojs運行時。但是,如果移動設備上的原生應用運行在iojs運行時,js部分,而我認爲不是,後端的部分也會運行。但這聽起來很奇怪:) –

+0

好的。我看到,我的前端總是HTML :)。我知道節點主要用於運行web服務器,但事實上node(和io.js)遠不止於此。這是任何類型的事件驅動應用程序的運行時 - 在這裏看到更多:http://www.javaworld.com/article/2079190/scripting-jvm-languages/6-things-you-should-know-about-node- js.html。它不一定是網絡服務器,從我知道的反應原生的是,它使用io.js作爲運行時環境 - 肯定它的用戶iojs的要求,模塊,npm包裝程序和iojs其他大量組件(這正是我所理解的通過運行時)。 –

+3

React本機使用JavaScriptCore運行時而不是iojs。因此,使用內置node_modules(如stream,fs等)的node_modules將無法正常工作 – saby

相關問題