testare likb in locale "cbim-dynamic-form": "link:../cbimDynamicForm", versione workpnpm-workspace.yaml
~/Source/Repos/ cbimDynamicForm/ <-- libreria mioProgetto/ <-- progetto che usa la libreria
Vai sopra le due cartelle (~/Source/Repos).
Crea un file pnpm-workspace.yaml dentro ~/Source/Repos/.
Contenuto base:
yaml Copia Modifica packages:
- 'cbimDynamicForm'
- 'mioProgetto'
Attenzione: il nome delle cartelle deve corrispondere esattamente a dove sono i tuoi progetti.
📦 Dentro i tuoi package.json Verifica due cose:
Dentro cbimDynamicForm/package.json:
Deve esserci "name": "cbim-dynamic-form".
Dentro mioProgetto/package.json:
Devi dipendere da "cbim-dynamic-form" (magari già ce l'hai).
Se non hai ancora aggiunto la dipendenza, puoi farlo facile:
bash Copia Modifica cd mioProgetto pnpm add cbim-dynamic-form ⚡ Siccome è in workspace, pnpm non la scaricherà da internet — userà direttamente la tua versione locale!
Se nel tuo cbimDynamicForm/package.json c'è:
json Copia Modifica { "main": "dist/index.js", "types": "dist/index.d.ts" } Allora il parent importa i file da dist/! ✅
Se invece scrivi "main": "src/index.ts", allora useresti direttamente la src/, ma devi stare attento:
Il progetto consumer dovrebbe saper leggere TypeScript (es: usare Vite o un bundler configurato).
Oppure dovresti transpilarlo on-the-fly.
🛠️ 1. Configura tsconfig.json Apri il tsconfig.base.json (se usi Nx) oppure direttamente tsconfig.json, e aggiungi:
json Copia Modifica { "compilerOptions": { "baseUrl": ".", // importante per far funzionare i path relativi "paths": { "cbim-dynamic-form": ["../cbim-dynamic-form/src"] // oppure "dist" se già buildato } } } 📝 Assicurati che il percorso sia corretto rispetto alla root del progetto (dove si trova tsconfig.json).
🔗 2. (Opzionale) Usa npm link per testing locale Nel progetto della libreria (cbim-dynamic-form): pnpm setup se serve npm link pnpm link --global
Nel progetto host (cbim):
pnpm link cbim-dynamic-form Ora puoi fare:
tsx Copia Modifica import { DynamicForm } from 'cbim-dynamic-form';