Skip to content

node v20+ esm module resolution / types not working properly #90

@tom2strobl

Description

@tom2strobl

Environments

  • Framework name: react
  • Framework version: 18
  • Component name: @scena/react-guides
  • Component version: 0.28.2

Description

Hi there! I'm using node v20+ ESM with type: "module" and typescript with "moduleResolution": "NodeNext" in tsconfig.json.

import Guides from '@scena/react-guides'

function Component() {
  return <Guides />
}

In VSCode <Guides> is underlined with the following:
JSX element type 'Guides' does not have any construct or call signatures.ts(2604)

I also tried the following things without success:

// same issue
import { default as Guides } from '@scena/react-guides'

// not available
import { Guides } from '@scena/react-guides'

// obviously breaks the types
import Guides from '@scena/react-guides/dist/guides.esm.js'
import Guides from '@scena/react-guides/src/index.esm.js'

I think moveable and your other repos are suffering from the same issue.

Here's a minimal reproduction repository:
https://github.com/tom2strobl/daybrush-node-esm

Maybe it's as simple as adding an "exports" field to the package.json? I'm not sure if the module property is still the way to go
"module": "./dist/guides.esm.js", -> "exports": { "./": "./dist/guides.esm.js" }"

Let me know if I can help!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions