2015-08-30 2 views
30

Возможно ли использовать модули npm непосредственно с проектами React Native, например, использовать их в проекте React на npm install <module-name>?Использование модулей npm в проектах React Native

Конечно, я имею в виду модули, которые могут использоваться с приложением React, которые являются интерфейсами, которые будут выполняться в среде выполнения JS браузеров, но не в runtime-времени 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, отлично подходят для работы в режиме реагирования.

Например, я уверен, что Facebook использует свою библиотеку доступа к данным «relay» в своих реактивных приложениях (это библиотека javascript, которая эффективно обменивается данными через API Open Graph API и позволяет получать данные пользователя Facebook).

Способ сделать это такой же, как в других приложениях node.js/io.js. Просто запустите

НПМ установить модуль --save

и вы сделали (package.json будет автоматически обновлять с зависимостью для модуля). Затем вы можете использовать пакет как обычно.

+0

By front end libs Я имел в виду js, без HTML, css, такие как superagent, socket.io и т. Д. Исключенные http-серверы и оболочки такого типа, как Koa, express, так как они запускаются во время работы iojs. Но если реагировать на собственное приложение на мобильном устройстве выполняется во время работы iojs, js-части и, как я думаю, не будут, backend-а также. Но это звучит странно :) –

+0

OK. Вижу, интерфейс для меня всегда HTML :). Я знаю, что узел в основном используется для запуска веб-серверов, но на самом деле узел (и io.js) намного больше. Это среда исполнения для любого приложения, управляемого событиями - см. Здесь: http://www.javaworld.com/article/2079190/scripting-jvm-languages/6-things-you-should-know-about-node- js.html. Это не обязательно должен быть веб-сервер, и из того, что я знаю о том, как реагировать на native, является то, что он использует среду io.js в качестве среды выполнения - наверняка для нее требуются пользователи iojs, модули, npm packager и множество других компонентов из iojs (вот что я понимаю по времени выполнения). –

+3

React native использует JavaScriptCore runtime, а не iojs. Таким образом, node_modules, использующие встроенные node_modules, такие как stream, fs и т. Д., Не работают – saby

Смежные вопросы