expo: I run "expo publish", I get this error: Missing module "hermes-engine/win64-bin/hermesc" in the project

Summary

I upgraded recently from SDK 41 to SDK 42 and enabled hermes by following the instructions here: https://docs.expo.io/guides/using-hermes/

I am on Windows 11, I run the following EAS build smoothly without any problem:

eas build --clear-cache --platform android

The apk is generated and it has a reduced size and it is lightening fast at launch. The problem comes when I make changes to the code and run “expo publish” for OTA updates, it gives the following error:

Missing module "hermes-engine/win64-bin/hermesc" in the project.This usually means hermes-engine is not installed. Please verify that dependencies in package.json include "react-native" and run `yarn` or `npm install`.

Hermes engine is installed under react-native as seen in the screenshot below: hermes-error

Although not necessary, I installed hermes-engine (npm i hermes-engine) and tried again, same problem.

Managed or bare workflow? If you have ios/ or android/ directories in your project, the answer is bare!

managed

What platform(s) does this occur on?

Android

SDK Version (managed workflow only)

42

Environment

Expo CLI 4.7.3 environment info: System: OS: Windows 10 10.0.22000 Binaries: Node: 14.17.0 - C:\Program Files\nodejs\node.EXE npm: 6.14.13 - C:\Program Files\nodejs\npm.CMD IDEs: Android Studio: Version 4.2.0.0 AI-202.7660.26.42.7351085 npmPackages: expo: ^42.0.0 => 42.0.1 react: 16.13.1 => 16.13.1 react-dom: 16.13.1 => 16.13.1 react-native: https://github.com/expo/react-native/archive/sdk-42.0.0.tar.gz => 0.63.2 Expo Workflow: managed

Reproducible demo or steps to reproduce from a blank project

On SKD 42, enable hermes, run eas build and then “expo publish”.

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 15 (7 by maintainers)

Commits related to this issue

Most upvoted comments

@ecreeth thank you for the solution. the change is merged and will let you know once we releasing new version.

@asalha i am thinking if the solution might not help for you because the nested node_modules/react-native/node_modules/hermes-engine. if you still encounter the issue even after the fix, please let us know. thanks!

@mirik999 what is your expo-cli version ? (you could execute expo --version to check) please make sure to use the latest v4.9.1.

Omg, i remember i have updated my expo-cli a few days ago. But now version is 4.8.1. Okay now i am going to update expo-cli and retry

NOTE* Yes, it worked. Thanks

hi there! it is interesting that your hermes-engine is nested inside /yourRepo/node_modules/react-native/hermes-engine. could you help to clarify these questions?

  1. after npm i hermes-engine, will hermes-engine exist in /yourRepo/node_modules/hermes-engine?
  2. did you use --global-style during npm install in your repo?
  3. does metro exist in your repo, e.g. /yourRepo/node_modules/metro? if metro is not there, supposedly expo start will not work as well.
  4. is your repo is a monorepo?
  5. if you are okay with it, sharing dependencies, peerDependencies, and devDependencies in your package.json would be super helpful.

would like to clarify the reason why hermes-engine is nested installed. thank you for reporting this issue to us.