通过 expo 运行 react-native 项目 web 版本的 web 版本时出错。消息是 - 无法编译 /Libraries/StyleSheet/processColor.js

Posted

技术标签:

【中文标题】通过 expo 运行 react-native 项目 web 版本的 web 版本时出错。消息是 - 无法编译 /Libraries/StyleSheet/processColor.js【英文标题】:Error while running web version of react-native project web version via expo. The message is - Failed to compile /Libraries/StyleSheet/processColor.js 【发布时间】:2021-08-28 18:30:52 【问题描述】:

当我尝试通过 expo 运行 react-native 项目时出现此错误

E:/reacrNative23april/firestoreTester26April/node_modules/react-native/Libraries/StyleSheet/processColor.js
Module not found: Can't resolve '../Utilities/Platform' in 'E:\reacrNative23april\firestoreTester26April\node_modules\react-native\Libraries\StyleSheet'

这似乎是一个常见问题(通过谷歌搜索很明显),但似乎尚未解决。

这个链接https://github.com/expo/web-examples/issues/73有一些嗡嗡声,但是解决方法不是很清楚。

有没有人经历过并解决了这个问题?

更多数据-

    我的是一个裸工作流项目,带有一些原生模块,不确定它们是否会成为问题 我已尝试删除 node_modules 文件夹并运行 npm install,但没有成功

【问题讨论】:

【参考方案1】:

react-native 中没有非本地(即 web)版本的 Utilities/Platform。

您可以创建一个 webpack.config.js (expo has a helper for this) 并为在各种 rn 库中使用的 Utilities/Platform 的相对引用添加一个别名到 react-native-web 提供的那个:

const createExpoWebpackConfigAsync = require('@expo/webpack-config');

module.exports = async function (env, argv) 
  const config = await createExpoWebpackConfigAsync(env, argv);
  // Customize the config before returning it.
  // Resolve relative reference ../Utilities/Platform using react-native-web
  config.resolve.alias['../Utilities/Platform'] = 'react-native-web/dist/exports/Platform';
  return config;
;

【讨论】:

以上是关于通过 expo 运行 react-native 项目 web 版本的 web 版本时出错。消息是 - 无法编译 /Libraries/StyleSheet/processColor.js的主要内容,如果未能解决你的问题,请参考以下文章

React-Native Expo,Facebook 登录无法在 Android 设备上运行

当我运行“npx react-native start”时找不到模块“@expo/metro-config”

未找到模块:错误:无法解析“../aws-exports”(React-Native Expo Web)

react-native expo android macos问题

从使用 Expo SDK 构建的 React-Native 应用程序将照片分享到 Instagram

expo 应用程序中的 React-native 安装问题