Maison > Questions et réponses > le corps du texte
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 ?
P粉6475042832023-09-13 14:16:34
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.
/** @type {import('next').NextConfig} */ const nextConfig = { transpilePackages: ['@acme/ui', 'lodash-es'], } module.exports = nextConfig