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:
- cd packages/package_name
- 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
- 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.