2016-03-03 75 views
0

有没有办法确定一个npm包是否与react-native兼容?如何确定npm包是否与react-native兼容?

我读到,可用于反应原生他们必须有polyfill。这是我能找的东西吗?

例如: https://www.npmjs.com/package/redux-persist

我学习反应本地和JavaScript。我希望能够利用现有的npm包的许多。但是,除非软件包具有“react-native”作为软件包名称的一部分,否则似乎不起作用。

由于提前,

回答

2

更新(2017年8月7日):看一看安德烈Staltz的(staltz/react-native-node)包,它使所有节点封装,工作反应本土!


据我所知,任何((不))DOM依赖的包应该工作。关于rt2zz/redux-persist包,我只是快速查看它,但似乎他们支持react-native存储,因为它们提供了它的说明。

import {AsyncStorage} from 'react-native' 
persistStore(store, {storage: AsyncStorage}) 
+0

听起来好像没有任何东西可以用来确定程序包是否与react-native兼容。虽然我期望大多数软件包不支持react-native,但如果我发现任何“react-native”导入,它可能与react-native兼容。依赖于DOM的软件包无法使用react-native。你看什么来确定一个包依赖于DOM? –

+0

有没有简单的方法。您只需要查看源代码。使用实用程序框架(如lodash,下划线,时刻)可以相当安全。其余的,我会扫描一些明显的故事,比如依赖[react-dom](https://www.npmjs.com/package/react-dom),或者扫描引用React。 createElement,React.createClass,React.DOM和其他可能的[DOM相关顶级API](https://facebook.github.io/react/docs/top-level-api.html) –

+0

除了查找DOM依赖关系之外,在包为NodeJS编写的情况下,您还应该在依赖关系树中查找本地Node API对象的使用,例如'fs','path','net'等。 –