저는 React 구성 요소 라이브러리를 개발 중입니다. 이 라이브러리는 여러 내부 NextJ 프로젝트에서 사용됩니다.
NextJ와의 호환성을 위해 이 라이브러리는 어느 시점에 CommonJ로 변환되어야 합니다.
문제는 내 라이브러리의 일부 npm 종속성이 CommonJS를 처리하지 않는다는 것입니다. 예를 들어 스와이퍼(Swiper)의 경우가 그렇습니다.
두 가지 옵션이 있습니다:
두 가지의 혼합을 구상할 수도 있습니다. CommonJ 및 ES 모듈에 대한 모든 종속성 관리를 무시하고 필요한 것만 전치합니다.
어떻게 생각하세요?
우리도 같은 상황에 처해 있습니다. 기본 ESM 모듈이 있는 핵심 라이브러리에 의존하는 Next.js 애플리케이션이 있습니다. 그러나 종속성을 번들로 묶지 않는 것이 좋습니다. 다운스트림 애플리케이션에는 동일한 종속성이 있을 수 있으며 이제 두 번 로드하게 됩니다. 그리고 다른 타사 종속성(ESM 종속성 포함)에서 이 문제가 발생했을 수도 있습니다.
으아악next.config.js
中的transpilePackages
列表中即可:https://nextjs.org/docs/app/api-reference/next-config-js/transpilePackages。我们还使用 next/jest ,它似乎也可以获取配置并且似乎可以工作。唯一需要注意的是,我发现我们必须转译@babel/runtime
에 추가하기만 하면 됩니다. 하지만 jest가 실행 중인 경우에만 그렇지 않으면 기본 애플리케이션이 중단됩니다.