react-native-storybook-starter icon indicating copy to clipboard operation
react-native-storybook-starter copied to clipboard

Unable to resolve module @storybook/core/manager-api

Open trooperandz opened this issue 1 year ago • 12 comments

When running the starter project (tested for both android and iOS, and after running all install commands), I receive this error:

Unable to resolve module @storybook/core/manager-api from /node_modules/@storybook/addon-ondevice-controls/dist/index.js: @storybook/core/manager-api could not be found within the project...

It seems this is out-of-the-box, and the starter project will not run. Am I missing something obvious?

trooperandz avatar Oct 15 '24 17:10 trooperandz

let me check, I have recently pushed some fixes that I need to update the examples to reflect

Sorry for the delay, I'm maintaining a lot of example projects so it takes a while 😅

dannyhw avatar Oct 15 '24 19:10 dannyhw

that error is from not having package exports enabled in metro, though it should run if you use yarn storybook:ios or just edit withStorybook in metro to enabled:true

dannyhw avatar Oct 15 '24 19:10 dannyhw

OK nvm I broke it in my recent release but I have a fix coming in the next 10 mins

dannyhw avatar Oct 15 '24 19:10 dannyhw

@trooperandz should be fixed in 8.3.9 and by keeping the withStorybook config enabled. Theres probably still some tweaking to do here on my part, metro is just really tricky 😅

dannyhw avatar Oct 15 '24 19:10 dannyhw

some code I've added to this example to make everything work as expected and remove storybook from non storybook builds.

( see the metro config file )

const config = {
  resolver: {
    resolveRequest: (context, moduleName, platform) => {
      if (
        (moduleName.startsWith('storybook') ||
          moduleName.startsWith('@storybook')) &&
        process.env.STORYBOOK_ENABLED !== 'true'
      ) {
        return {
          type: 'empty',
        };
      }

      return context.resolveRequest(context, moduleName, platform);
    },
  },
};

dannyhw avatar Oct 15 '24 20:10 dannyhw

Experimenting with adding this to withStorybook as an option. https://github.com/storybookjs/react-native/pull/622/files

probably will ship it as it seems harmless as an option

dannyhw avatar Oct 15 '24 20:10 dannyhw

@dannyhw thanks for looking at this.

I pulled down the project again (fresh start) after the updates, and had a few issues:

  1. Had to set my own STORYBOOK_ENABLED env var to get the app to run (maybe the example project should just have an a .env file with this value in it since it has to be changed to work out of the box and is a little bit of a surprise that it doesn't run)?

  2. After resolving the above, then I ran into the transformer.unstable_allowRequireContext metro configuration error (I realize there is a note having to set this this to true in the main docs, but maybe the starter project should have this in it since it should run out of the box and I couldn't get metro to run without changing it, which was a surprise).

  3. Finally, I got this error after the two above were resolved: TypeError: 0, _$$_REQUIRE(_dependencyMap[8](...)"@storybook/react-native").start is not a function (it is undefined), thrown from the storybook.requires.ts file.

Let me know if I missed some steps or anything; I just pulled it down, installed the dependencies, and ran a pod install for iOS before building it in Xcode. Thanks!

trooperandz avatar Oct 17 '24 07:10 trooperandz

The storybook enabled var is set in the script you run from package.json, are you saying the storybook script wasn't working for that?

If you are going to run from xcode yeah it won't work since the env is not set. Though it will work if you use yarn storybook to start metro with storybook enabled first

dannyhw avatar Oct 17 '24 09:10 dannyhw

Thanks @dannyhw . Yes, running with the package.json command fixes this. However, there are still the other two issues I encountered mentioned above, resulting in the following errors:

Screenshot 2024-10-17 at 11 30 18 AM Screenshot 2024-10-17 at 11 28 24 AM

trooperandz avatar Oct 17 '24 16:10 trooperandz

I've not run into this issue myself when i run the project but i will take a look soon and see if i can reproduce.

You'll only get that if the env variable is turned off an you try to run storybook

dannyhw avatar Oct 17 '24 17:10 dannyhw

Thanks. I guess I ran that incorrectly; it's working now, thanks!

trooperandz avatar Oct 17 '24 18:10 trooperandz

@trooperandz glad its working! Thanks for your patience on this, I know its not been easy to get setup. Hopefully I can make it easier. If you have any suggestions for improving documentation or anything else that could be make it easier to get setup i'd be happy to hear it 🙏

dannyhw avatar Oct 17 '24 20:10 dannyhw