javascript - Bruke package.json-eksporter i en Typescript-pakke
Jeg har en lokal Typescript-pakke som jeg importerer til et prosjekt ved å bruke npm I ./path/to/midule. package.json for denne pakken ser slik ut:
{
"name": "my_package",
"version": "1.0.0",
"main": "./build/src/index.js",
...
}
Jeg prøver å bytte fra å bruke main-feltet til det nyere exports-feltet, da jeg ønsker mer kontroll over hvordan pakken min importeres. Jeg prøvde å erstatte main-feltet med noe jeg trodde var tilsvarende:
{
"name": "my_package",
"version": "1.0.0",
"exports": {
".": "./build/src/index.js"
},
...
}
Dette fungerer imidlertid ikke. Når jeg prøver å importere pakken til mitt andre prosjekt, får jeg følgende feil:
Cannot find module 'my_package' or its corresponding type declarations.
Jeg genererer .d.ts-filene ved å bruke declarations-flagget med TypeScript-kompilatoren og spesifiserte den nøyaktige banen til index.d.ts-filen i package.json, men den samme feilmeldingen vedvarte.
Jeg mangler sannsynligvis noe enkelt, men klarer ikke å finne ut hva det er. Hvordan kan jeg bruke exports-feltet i en Typescript-pakke?
Svar #1
Jeg endte opp med å finne svaret:
Du må sette moduleResolution-feltet i tsconfig.json-filen din til nodenext. Jeg måtte også oppdatere til den nyeste LTS-versjonen av node.js.