'Expo won't build with locally installed NPM packages

I am using [email protected] (and [email protected]) to manage my react native project and I have to install an npm package from local source:

$ npm install /path/to/mypackage

In my package.json the package is successfully linked via

"dependencies": {
  ...
  "myPackage": "file:../../mypackage",
  ...
}

I can also confirm the package works when installing to a new plain node project (same node version 14.8.2)

Now when I start expo via expo start and navigate to the app it does not throw any error but only a warning:

› Reloading apps
warn No apps connected. Sending "reload" to all React Native apps failed. Make sure your app is running in the simulator or on a phone connected via USB.

When using the package from registry everything builds, however.

I tried to use the private packages section form the expo docs, but they only describe how to use private packages from registry but not local.

Anything I'm missing here?

edit:

After resetting the expo network adapters it loads the bundle but it now says it can't find the package:

Unable to resolve module myPackage from /home/user/path/to/myPackage/file.js: myPackage could not be found within the project or in these directories:
  node_modules

If you are sure the module exists, try these steps:
 1. Clear watchman watches: watchman watch-del-all
 2. Delete node_modules and run yarn install
 3. Reset Metro's cache: yarn start --reset-cache
 4. Remove the cache: rm -rf /tmp/metro-*

However, I'm not using watchman and I'm not using yarn and rmoving metro- folders from /tmp did not make a difference.



Solution 1:[1]

As it turned out in this issue on GitHub it can be solved via npm pack:

run npm pack inside of your library and then npm install path/to/the/packed/file.tgz from your project

Which worked fine for the setup I described in the question.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Jankapunkt