React Native Packager package.json" browser"字段

时间:2016-03-08 11:25:59

标签: react-native

我正在尝试让我们的JavaScript library与React Native兼容。目前,该软件包通过使用"浏览器"支持浏览器和nodejs环境。 package.json中的字段。据我所知,React Native Packager也应该遵守这个字段的规范,但不知何故,当我在React Native项目中安装软件包并运行packager时,它失败了,要求" url"包(通过浏览器字段填充)。

3 个答案:

答案 0 :(得分:0)

您可以在package.json中添加react-native字段,如下所示:

"react-native": "./dist/index.js"

答案 1 :(得分:0)

我遇到了同样的问题,发现只能替换“主”文件。

答案 2 :(得分:0)

React Native Packager(metro 打包器)尊重 react-native 中的 package.json 字段。 browser 字段仅在未指定 react-native 字段时使用。

package.json 的示例如下:https://github.com/Gozala/web-encoding/blob/default/package.json#L11

这个 polyfill 库 (web-encoding) 将 TextEncoder API 暴露给 React Native 环境(以及旧的 nodejs 环境)。 此 API 仅在浏览器和较新的节点环境中没有此 polyfill 时可用。

为了向 RN 环境提供 API,它将 react-native 字段设置为 "./src/lib.react-native.js"(请参阅上面的链接以了解全貌)。

react-native 字段由 metro 打包程序专门处理。 相应的实现如下。

https://github.com/facebook/metro/blob/v0.64.0/packages/metro/src/ModuleGraph/node-haste/Package.js#L108