首页 > 解决方案 > 检测是否使用 nextJS、react 或 react-native

问题描述

我正在构建一个使用 React 应用程序的库。由于它将在 React 生态系统中运行,因此某些功能将根据环境以不同方式运行。

我正在寻找一种方法来检测当前环境是否是 ReactJS 应用程序(例如使用 create-react-app 制作),或者它是否在其上使用 NextJS 作为 SSR,或者它是否是使用 React Native 制作的移动应用程序.

是否存在了解此信息的 javascript 方式?

谢谢 :)

标签: javascriptreactjsreact-nativenext.js

解决方案


要检查您的代码是否在 react native 中运行,您可以使用 navigator.product。React Native 将 navigator.product 作为“ReactNative”返回。这是已实施的提案的链接。https://github.com/facebook/react-native/issues/1331

要检查您的代码是否在 NextJS 或浏览器中运行,您可以检查是否定义了window对象或document对象。在 nodeJS 下,window未定义。

React Native 定义了常见的浏览器对象,如窗口和文档,以确保目标浏览器的库工作。这是代码的链接。 https://github.com/facebook/react-native/blob/master/Libraries/Core/InitializeCore.js


推荐阅读