React Native软件包错误:Haste模块映射中不存在模块“ Scheduler”

时间:2019-07-05 23:53:52

标签: node.js reactjs react-native npm

在我的本地反应项目中,如果我运行捆绑命令,它将失败,并显示错误。

命令:

`sudo react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/`

错误:

error Unable to resolve module 'scheduler' from '/home/buddhi/Buddhi/my-dev-environment/html/react-apps/mobile-64/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js': Module 'scheduler' does not exist in the Haste module map

This might be related to https://github.com/facebook/react-native/issues/4968
To resolve try the following:
  1. Clear watchman watches: 'watchman watch-del-all'.
  2. Delete the 'node_modules' folder: 'rm -rf node_modules && npm install'.
  3. Reset Metro Bundler cache: 'rm -rf /tmp/metro-bundler-cache-*' or 'npm start -- --reset-cache'.
  4. Remove haste cache: 'rm -rf /tmp/haste-map-react-native-packager-*'.. Run CLI with --verbose flag for more details.

版本:

  • “反应”:“ 16.8.3”
  • “反应本机”:“ 0.59.0”
  • “ npm”:6.9.0
  • “节点”:10.16.0

当我用react-native 0.57.2运行同一命令时,它运行得很好。 (请注意,我需要使用react本机版本0.59.0来获得对应用程序的android x64体系结构支持)

  1. 我已经尝试了错误中提到的步骤。
  2. 我尝试过多次删除/node_modulesnpm install的尝试。
  3. npm start --reset-cache之后试过。

问题仍然存在。

我看到的变化是,在本机版本0.59.0中,错误中提到的文件var scheduler = require("scheduler")中有行ReactNativeRenderer-prod.js。但是在本机版本0.57.2中,未使用它。

我很确定这是由npm引起的,而不是react-native版本的问题。是吗?

无法弄清楚为什么它不在提到的急速模块图中,而急速模块图到底是什么?我找不到足够的信息来支持该问题。

任何帮助表示赞赏。询问其他信息。

1 个答案:

答案 0 :(得分:0)

如果您正在使用expo,请确保您的exporeact-native版本如下:

"expo": "^35.0.0", "react": "16.8.3", "react-native": "https://github.com/expo/react-native/archive/sdk-35.0.0.tar.gz",

只有这种组合对我有用。