Ricerca nel sito web

reactjs - Tipi React non corrispondenti in monorepo pnpm


Sto cercando di convertire un monorepo ereditato da yarn+lerna a pnpm workspaces

Attualmente sto ricevendo un errore a causa di versioni di React non corrispondenti, TypeScript non rileva per qualche motivo la versione di @types/react più vicina nell'albero.

Ho un pacchetto packages/web che utilizza i tipi di React 18, e un pacchetto packages/native che utilizza i tipi di React 16.

Ho un sacco di errori nel pacchetto nativo come

'Text' cannot be used as a JSX component.
  Its instance type 'Text' is not a valid JSX element.
    The types returned by 'render()' are incompatible between these types.
      Type 'import("~/node_modules/.pnpm/@[email /node_modules/@types/react/index").ReactNode' is not assignable to type 'import("~/node_modules/.pnpm/@[email /node_modules/@types/react/index").ReactNode'.

Hai qualche idea su come risolvere questo?

Risposta n. 1

Esegui pnpm update --latest -r per aggiornare ricorsivamente tutte le dipendenze all'ultima versione. Questo dovrebbe fare in modo che tutti i pacchetti utilizzino versioni uniformi e risolvere tutti o la maggior parte degli errori.

Risposta n. 2

A volte, vecchie dipendenze potrebbero causare conflitti. Per assicurarti di avere un ambiente pulito, prova a cancellare la cache di pnpm eseguendo questo comando:

pnpm cache clear --force

Articoli correlati