我正在努力使一个库在NodeJS和ReactNative上工作.ReactNative不支持某些本机NodeJS模块,因此我尝试有条件地加载它们.但这不起作用:
if (true) {
require('a'); // module 'a' works in ReactNative
} else {
require('b'); // module 'b' doesn't work in ReactNative
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,BOTH要求声明广告执行并加载'b'抛出异常:(
现在我有以下选择:
一般来说,你会建议让我的库在Node和ReactNative中工作吗?
谢谢,
我想通了 - 这是使用package.json. 在那里你可以用另一个模块替换一个模块,或者为 ReactNative 禁用它(通过将其值设置为false)。如果您用另一个模块替换该模块,则该模块也应添加到依赖项列表中。
在上面的示例中,对于属性中的模块b,react-native您必须将其设置false为值。
在 package.json 中,这可能如下所示:
"dependencies": {
"c": "^1.0.0"
},
"react-native": {
"a": "c",
"b": false
}
Run Code Online (Sandbox Code Playgroud)
在 ReactNative 的情况下,上面的代码将用模块替换模块a,c它将抑制模块的加载b(它看起来像一个空对象)。
| 归档时间: |
|
| 查看次数: |
1537 次 |
| 最近记录: |