찾다

 >  Q&A  >  본문

내 라이브러리 패키지에 노드 모듈을 포함해야 합니까?

저는 React 구성 요소 라이브러리를 개발 중입니다. 이 라이브러리는 여러 내부 NextJ 프로젝트에서 사용됩니다.

NextJ와의 호환성을 위해 이 라이브러리는 어느 시점에 CommonJ로 변환되어야 합니다.

문제는 내 라이브러리의 일부 npm 종속성이 CommonJS를 처리하지 않는다는 것입니다. 예를 들어 스와이퍼(Swiper)의 경우가 그렇습니다.

두 가지 옵션이 있습니다:

두 가지의 혼합을 구상할 수도 있습니다. CommonJ 및 ES 모듈에 대한 모든 종속성 관리를 무시하고 필요한 것만 전치합니다.

어떻게 생각하세요?

P粉716228245P粉716228245444일 전590

모든 응답(1)나는 대답할 것이다

  • P粉647504283

    P粉6475042832023-09-13 14:16:34

    우리도 같은 상황에 처해 있습니다. 기본 ESM 모듈이 있는 핵심 라이브러리에 의존하는 Next.js 애플리케이션이 있습니다. 그러나 종속성을 번들로 묶지 않는 것이 좋습니다. 다운스트림 애플리케이션에는 동일한 종속성이 있을 수 있으며 이제 두 번 로드하게 됩니다. 그리고 다른 타사 종속성(ESM 종속성 포함)에서 이 문제가 발생했을 수도 있습니다. next.config.js 中的 transpilePackages 列表中即可:https://nextjs.org/docs/app/api-reference/next-config-js/transpilePackages。我们还使用 next/jest ,它似乎也可以获取配置并且似乎可以工作。唯一需要注意的是,我发现我们必须转译 @babel/runtime에 추가하기만 하면 됩니다. 하지만 jest가 실행 중인 경우에만 그렇지 않으면 기본 애플리케이션이 중단됩니다.

    으아악

    회신하다
    0
  • 취소회신하다