Je développe une bibliothèque de composants React. Cette bibliothèque est utilisée par plusieurs projets internes NextJs.
Pour des raisons de compatibilité avec NextJs, cette bibliothèque devra être convertie en CommonJs à un moment donné.
Le problème est que certaines dépendances npm de ma bibliothèque ne gèrent pas CommonJS. C’est le cas par exemple de swiper.
J'ai donc deux options :
Je peux aussi envisager un mélange des deux : j'ignore la gestion de toutes les dépendances des modules CommonJs et ES, et ne transpose que celles qui sont nécessaires.
Qu'en pensez-vous ?
Nous avons la même situation : nous avons une application Next.js qui s'appuie sur une bibliothèque principale avec des modules ESM sous-jacents. Cependant, je recommande de ne pas regrouper vos dépendances. Vos applications en aval peuvent avoir les mêmes dépendances et vous finissez maintenant par les charger deux fois. Et vous avez peut-être rencontré ce problème avec d'autres dépendances tierces (avec les dépendances ESM). Ajoutez-les simplement à
next.config.js
中的transpilePackages
列表中即可:https://nextjs.org/docs/app/api-reference/next-config-js/transpilePackages。我们还使用 next/jest ,它似乎也可以获取配置并且似乎可以工作。唯一需要注意的是,我发现我们必须转译@babel/runtime
mais seulement lorsque jest est en cours d'exécution, sinon cela cassera l'application principale.