Saya sedang membangunkan perpustakaan komponen React. Pustaka ini digunakan oleh beberapa projek NextJs dalaman.
Atas sebab keserasian dengan NextJs, perpustakaan ini perlu ditukar kepada CommonJs pada satu ketika.
Masalahnya ialah beberapa kebergantungan npm perpustakaan saya tidak mengendalikan CommonJS. Ini adalah kes, sebagai contoh, dengan swiper.
Jadi saya ada dua pilihan:
Saya juga boleh membayangkan gabungan kedua-duanya: Saya mengabaikan mengurus semua kebergantungan untuk modul CommonJs dan ES, dan menukar hanya yang perlu.
Apa pendapat anda?
Kami mempunyai situasi yang sama - kami mempunyai aplikasi Next.js yang bergantung pada perpustakaan teras dengan modul ESM asas. Walau bagaimanapun, saya cadangkan tidak menggabungkan kebergantungan anda. Aplikasi hiliran anda mungkin mempunyai kebergantungan yang sama dan kini anda akhirnya memuatkannya dua kali. Dan anda mungkin menghadapi masalah ini dengan tanggungan pihak ketiga yang lain (dengan tanggungan ESM). Hanya tambahkannya ke
next.config.js
中的transpilePackages
列表中即可:https://nextjs.org/docs/app/api-reference/next-config-js/transpilePackages。我们还使用 next/jest ,它似乎也可以获取配置并且似乎可以工作。唯一需要注意的是,我发现我们必须转译@babel/runtime
tetapi hanya apabila jest sedang berjalan, jika tidak ia akan memecahkan aplikasi utama.