write a package with the option to import subpaths typescript

1.1k Views Asked by At

I wrote a package let's call it commons and another project that imports it.
I do not want to import the whole package but only one subpath of this package.
import { client } from '@commons/clients' instead of import { client } from '@commons'

I have seen typescript packages such as jose that enable such behavior.
E.g. import createRemoteJWKSet from 'jose/jwks/remote'.

After some research, I did see that I can define in package.json this behavior with exports key. Unfortunately, this seems to work only for pure js and not typescript as far as I tested it. Also, I have found that typescript doesn't support exports yet in some thread. How does a package such as jose manage this?

1

There are 1 best solutions below

0
On

This is supported in TypeScript but not by the default module resolution. To allow TypeScript to resolve the module, you need to use either Node16 or NodeNext for your moduleResolution field in tsconfig.json.