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.

Relaterte artikler