node.js - Typescript kunne ikke finne egendefinerte tredjeparts typer fra pakken


Jeg har skrevet en NPM-pakke i Typescript som du kan finne her: https://github.com/DiceBear/avatars

Pakke inneholder egne deklarasjoner (som automatisk genereres med alternativet "compilerOptions.declaration") og deklarasjoner for tredjepartspakker.

{
    "compilerOptions": {
        "outDir": "./lib",
        "moduleResolution": "node",
        "declaration": true,
        "noImplicitAny": true,
        "typeRoots": [
            "node_modules/@types",
            "typings"
        ]
    },
    "include": [
        "./src/"
    ]
}

I "package.json" har jeg et alternativ "types" for banen til de genererte deklarasjonene.

{
  "name": "@dicebear/avatars",
  "version": "2.0.0",
  "main": "lib/index",
  "types": "lib/index"
}

Men hvis jeg installerer pakken i et sluttprosjekt, ignorerer Typescript deklarasjonene for tredjepartspakkene under "typings".

Hvordan kan jeg håndtere de genererte deklarasjonene med mine egne deklarasjoner for tredjepartspakkene?

Svar #1

Hovedprosjektet ditt er et monorepo, jeg foreslår at du bruker npm link.

For hver pakke:

  1. cd packages/package_name
  2. npm lenke

enn i roten package.json-filen, sørg for at @dicebear/avatars bare vises én gang (ikke både i dependencies og devDependecies som nå).

Endre dependencies fra file til version: "@dicebear/avatars": "4.2.0", i stedet for "@dicebear/avatars": "file:packages/avatars", (dette for alle dependencies).

Til slutt, i rotmappen, for hver avhengighet

  1. npm link package_name

(Jeg mener npm link @dicebear/avatars, npm link @dicebear/avatars-avataaars-sprites, og så videre...)

Kjør npm install en gang til, og det bør være nok.

Håper dette hjelper.

Relaterte artikler