reactjs - Jenis React tidak sepadan dalam monorepo pnpm


Saya sedang cuba menukar monorepo yang diwarisi dari yarn+lerna ke ruang kerja pnpm

Saya kini menghadapi ralat kerana versi React tidak sepadan, TypeScript tidak mengenal pasti versi @types/react yang paling hampir dalam struktur untuk beberapa sebab

Saya mempunyai pakej packages/web yang menggunakan jenis React 18, dan pakej packages/native yang menggunakan jenis React 16.

Saya mempunyai banyak kesilapan dalam pakej asli seperti

'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'.

ada idea bagaimana untuk membaiki ini?

Jawapan #1

Jalankan pnpm update --latest -r untuk mengemas kini semua kebergantungan secara berulang kepada versi terkini. Ini sepatutnya menjadikan semua pakej menggunakan versi yang seragam dan menyelesaikan semua atau kebanyakan ralat.

Jawapan #2

Kadang-kadang, pergantungan lama mungkin menyebabkan konflik. Untuk memastikan anda mempunyai persekitaran yang bersih, cuba kosongkan cache pnpm dengan menjalankan arahan ini:

pnpm cache clear --force