Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Require cycle: node_modules/core-js/internals/microtask.js warning #31969

Closed
KrisLau opened this issue Aug 5, 2021 · 9 comments
Closed

Require cycle: node_modules/core-js/internals/microtask.js warning #31969

KrisLau opened this issue Aug 5, 2021 · 9 comments
Labels
Needs: Attention Issues where the author has responded to feedback. Needs: Repro This issue could be improved with a clear list of steps to reproduce the issue. Stale There has been a lack of activity on this issue and it may be closed soon.

Comments

@KrisLau
Copy link

KrisLau commented Aug 5, 2021

Description

Getting this error when I build my React Native app

 ERROR  RangeError: Maximum call stack size exceeded, js engine: hermes
 ERROR  Invariant Violation: Module AppRegistry is not a registered callable module (calling runApplication). A frequent cause of the error is that the application entry file path is incorrect. 
      This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native., js engine: hermes
 WARN  Require cycle: node_modules\core-js\internals\microtask.js -> node_modules\core-js\internals\microtask.js

Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle.
 ERROR  Invariant Violation: Module AppRegistry is not a registered callable module (calling runApplication). A frequent cause of the error is that the application entry file path is incorrect. 
      This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native., js engine: hermes

React Native version:

info Fetching system and libraries information...
System:
    OS: Windows 10 10.0.19043
    CPU: (4) x64 Intel(R) Core(TM) i5-6600 CPU @ 3.30GHz
    Memory: 2.12 GB / 15.89 GB
  Binaries:
    Node: 14.16.1 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.10 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 7.18.1 - C:\Program Files\nodejs\npm.CMD
    Watchman: Not Found
  SDKs:
    Android SDK: Not Found
    Windows SDK: Not Found
  IDEs:
    Android Studio: Version  4.1.0.0 AI-201.8743.12.41.7199119
    Visual Studio: Not Found
  Languages:
    Java: 11.0.10
  npmPackages:
    @react-native-community/cli: Not Found
    react: ^17.0.2 => 17.0.2
    react-native: ^0.64.2 => 0.64.2
    react-native-windows: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Steps To Reproduce

I'm not sure what caused it but it is similar to this commenter and issue #31173. The solution provided in #31173 is to disable Hermes but I would like to leave Hermes enabled since it is supposed to provide performance improvements.

Expected Results

No error in Metro

Snack, code example, screenshot, or link to a repository:

image

@safaiyeh safaiyeh added the Needs: Repro This issue could be improved with a clear list of steps to reproduce the issue. label Aug 6, 2021
@github-actions
Copy link

github-actions bot commented Aug 6, 2021

⚠️ Missing Reproducible Example
ℹ️ It looks like your issue is missing a reproducible example. Please provide a Snack or a repository that demonstrates the issue you are reporting in a minimal, complete, and reproducible manner.

@safaiyeh
Copy link
Contributor

safaiyeh commented Aug 6, 2021

Thanks for the issue @KrisLau would need more information then just the error message. Could you provide a repo that demonstrates the error from a fresh template.

@KrisLau
Copy link
Author

KrisLau commented Aug 9, 2021

@safaiyeh Sorry it's taken me so long to get back to you! So I figured out the part that's causing the error but I'm unsure how to resolve it as it was working prior. It's being caused by the AppRegistry.registerComponent(appName, () => Root); when I change the Root to App, it works fine but I would like to have the dev meu toggle visible still. Also, another weird thing to note is that my code as-is works well in iOS with only the require cycle error (as opposed to on android where i also get an Invariant Violation: Module AppRegistry is not a registered callable module (calling runApplication) error)
I had followed the instructions from this blog: https://spicyseashells.com/article/react-native-storybook to implement the dev menu toggle for storybook.

My code (excluding import statements for brevity):

**// index.js**
AppRegistry.registerComponent(appName, () => Root);
**// Root.tsx**
const Root = () => {
  const [storybookActive, setStorybookActive] = useState(false);
  const toggleStorybook = useCallback(
    () => setStorybookActive(active => !active),
    [],
  );

  useEffect(() => {
    if (__DEV__) {
      // eslint-disable-next-line @typescript-eslint/no-var-requires
      const DevMenu = require('react-native-dev-menu');
      DevMenu.addItem('Toggle Storybook', toggleStorybook);
    }
  }, [toggleStorybook]);

  return storybookActive ? <Storybook /> : <App />;
};
**// storybook/index.js**
const StorybookUIRoot = getStorybookUI({
  host: Platform.OS === 'android' ? '10.0.2.2' : '0.0.0.0',
  asyncStorage: AsyncStorage,
});

AppRegistry.registerComponent(appName, () => StorybookUIRoot);

export default StorybookUIRoot;

@github-actions github-actions bot added Needs: Attention Issues where the author has responded to feedback. and removed Needs: Author Feedback labels Aug 9, 2021
@KrisLau
Copy link
Author

KrisLau commented Sep 21, 2021

Any updates on this? When I set inlineRequires = false, the app builds successfully but I'd like to keep inline require enabled if possible

@vladi-strilets
Copy link

I'm getting the same issue as @KrisLau. And it's also relative to Storybook.

Even the simple boolean-based export type creates troubles (in my case, react-hook-form stops working)

// App.tsx
...
export default config.storybook.LOAD_STORYBOOK ? StorybookUI : App

The only warning I'm getting is about the Require cycle

The unique working solution is to set inlineRequires: false in metro.config.js.

@KrisLau
Copy link
Author

KrisLau commented Nov 8, 2021

@safaiyeh Any ideas on what might be causing this?

@404-html
Copy link

Looks like this have not too much to do with RN itself and warning is properly thrown in that case.
This seems to be a problem with Storybook for ReactNative and it should be addressed with next version.
See more here: storybookjs/react-native#240

Copy link

github-actions bot commented Mar 8, 2024

This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 7 days.

@github-actions github-actions bot added the Stale There has been a lack of activity on this issue and it may be closed soon. label Mar 8, 2024
Copy link

This issue was closed because it has been stalled for 7 days with no activity.

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Mar 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs: Attention Issues where the author has responded to feedback. Needs: Repro This issue could be improved with a clear list of steps to reproduce the issue. Stale There has been a lack of activity on this issue and it may be closed soon.
Projects
None yet
Development

No branches or pull requests

4 participants