javascript - Lokal utveckling med flera lokala paket
Jag har en NodeJS-app och flera lokala paket (vissa verktyg som jag vill dela med andra webbläsarappar) alla skrivna i Typescript med följande struktur:
Paket A (detta har några grundläggande hjälpfunktioner)
- inga beroenden
Paket B (detta använder hjälpfunktionerna för att göra något mer komplext)
- paket A <- med npm länk
NodeJS-app (Jag behöver använda både de grundläggande hjälpfunktionerna och de komplexa)
- paket B <- med npm-länk
- paket A <- med npm-länk
Alla dessa paket har byggts till deras .js-motsvarigheter, men jag får ett fel när jag försöker använda en metod från paket A i min NodeJS-app.
Till exempel:
Paket A/Collections.ts:
class Collection{
count(){ ...code here }
}
Paket B/ComplexCollections.ts:
import Collection from "project-a/Collection";
class ComplexCollection extends Collection{
}
NodeJS app/index.ts:
import ComplexCollection from "project-B/ComplexCollection";
const collection = new ComplexCollection();
colection.count() // this gives `error TS2339: Property 'count' does not exist on type 'ComplexCollection'`
Det verkar som att paket B inte exponerar paketets A Collection-klass.
Jag kan åtgärda detta fel genom att använda .ts-filerna direkt, men så vitt jag vet är det inte god praxis enligt denna kommentar
Hur kan jag åtgärda det här problemet? Eller vad är ett bra lokalt utvecklingsflöde med den här typen av setup?
Min slutliga plan är att använda dessa paket i webappar byggda med Angular, React, Vue eller Vanilla JS (genom webpack)