bulletproof-react icon indicating copy to clipboard operation
bulletproof-react copied to clipboard

The requested module _ contains conflicting star exports for the names '$$typeof', '__esModule' with the previous requested module _

Open resthedev opened this issue 1 year ago • 2 comments

In my @/features/profiles/index.ts file, I am exporting two React components like this:

export * from "./components/ProfilesPage";
export * from "./components/ProfilesPageLoading";

However, in doing so, I'm getting the following error:

The requested module './components/ProfilesPageLoading' contains conflicting star exports for the names '$$typeof', '__esModule' with the previous requested module './components/ProfilesPage'

I am using NextJS so is it possible that it is affecting things by adding things onto the components and causing naming conflicts?

Thank you.

resthedev avatar Apr 20 '23 02:04 resthedev

I started randomly getting these errors in my library. NextJS, as well as the compiler.

It may be in one of the builders. It makes no sense, and it is very random. I'll have no errors, and then suddenly, I'll get things like the below example. The code is crazy simple. It might not be something the library here can "fix"

The requested module './VerifyEmailForm' contains conflicting star exports for the names '$$typeof', '__esModule' with the previous requested module './SignInEmailForm'

Import trace for requested module:
../../libs/client/components/src/forms/index.ts
../../libs/client/components/src/index.ts
./app/(withNavBar)/page.tsx

../../libs/client/components/src/index.ts
The requested module './forms' contains conflicting star exports for the names '$$typeof', '__esModule' with the previous requested module './marketing'

Import trace for requested module:
../../libs/client/components/src/index.ts
./app/(withNavBar)/page.tsx

Brian-McBride avatar Apr 23 '23 15:04 Brian-McBride

I started randomly getting these errors in my library.

NextJS, as well as the compiler.

It may be in one of the builders. It makes no sense, and it is very random. I'll have no errors, and then suddenly, I'll get things like the below example. The code is crazy simple. It might not be something the library here can "fix"


The requested module './VerifyEmailForm' contains conflicting star exports for the names '$$typeof', '__esModule' with the previous requested module './SignInEmailForm'



Import trace for requested module:

../../libs/client/components/src/forms/index.ts

../../libs/client/components/src/index.ts

./app/(withNavBar)/page.tsx



../../libs/client/components/src/index.ts

The requested module './forms' contains conflicting star exports for the names '$$typeof', '__esModule' with the previous requested module './marketing'



Import trace for requested module:

../../libs/client/components/src/index.ts

./app/(withNavBar)/page.tsx

Yeah it's unfortunate that it's happening. Seems like React components are exporting these default variables like __esmodule and $$typeof. These then conflict with each other when you do the * star exports cause the index.ts file will try to export these variables of the same name.

I get the error if I do

export * from "./ComponentA"; 
export * from "./ComponentB"; 

//error because both components have the __esmodule and $$type of variables tacked on by default and are being exported 

So instead, I've been doing:

export { ComponentA }from "./ComponentA"; 
export { ComponentB } from "./ComponentB"; 

Only inconvenience would be that if you have variables or others you want to export from the component, then you'd have to manually specify those one by one.

resthedev avatar Apr 23 '23 16:04 resthedev