롤업의 최신 릴리스가 각도 라이브러리 빌드에 미치는 영향

직장의 프로젝트 중 하나에서 각도 응용 프로그램에 mono-repo 아키텍처를 사용하고 있습니다.
다음은 모노 저장소의 기술 스택입니다.
  • 각진
  • Lerna(여러 응용 프로그램 수준에서 패키지 관리)
  • NPM(패키지 관리자)

  • 폴더 구조:-

    project
    │   README.md   
    │   lerna.json
    |   package.json
    |   package-lock.json
    └───apps
    │   │
    │   └───angular-app-1
    │       │   package.json
    │       │   angular.json
    │       │   ...
    |   |
    │   └───angular-app-2
    │       │   package.json
    │       │   angular.json
    │       │   ...
    |
    └───SDK
    |   |
    │   └───angular-library
    │       │   package.json
    |       |   ...
    


    SDK 디렉토리 안에 있는 각도 라이브러리는 여러 각도 응용 프로그램 간에 코드를 공유하는 데 사용됩니다. 주로 서비스, 번역기 및 유틸리티 기능이 포함되어 있습니다.
    Angular 라이브러리를 빌드하는 데 사용되는 npm 패키지는 ng-packagr입니다(자세한 내용은 this 웹사이트 참조).
    ng-packagr은 각도 라이브러리를 빌드하기 위해 내부적으로 롤업을 사용합니다. 아래 스크린샷에서 강조 표시된 패키지를 참조하십시오.



    ng-packagr이 캐럿(^) 기호를 사용하여 롤업 패키지를 다운로드하는 것을 발견한 경우. 즉, 2.0.0에서 < 3.0.0까지의 모든 패키지 버전은 패키지를 설치할 때마다 npm 레지스트리에서 자동으로 가져옵니다.

    롤업이 버전 2.75.3을 출시했을 때 각도 라이브러리의 빌드가 갑자기 깨지기 시작했습니다. 다음 오류가 발생합니다.Cannot read properties of null (reading 'render') Visit this link to see more details

    개선:-
    npm 오류 로그를 확인했을 때. rollup.js 에서 생성되고 있음을 확인했습니다. 그러나 우리는 루트 package.json에서 rollup.js를 사용하지 않았으므로 이것이 설치되는 위치에서 소스 패키지를 식별하기 위해 다음 명령을 실행했음을 알 수 있습니다.npm list rollup

    그런 다음 ng-packagr에서 사용하고 있음을 알게되었습니다.
    이 문제를 신속하게 해결하기 위해 ng-packagr에 필요한 버전 대신 우리가 지정한 버전이 설치되었기 때문에 캐럿 기호 없이 루트 package.json에 롤업의 최신 안정 버전을 추가했습니다.

    "rollup": "2.75.2"
    


    나중에 다른 릴리스에서 롤업 팀에 의해 수정되었습니다.
    Visit this link to understand the fix

    좋은 웹페이지 즐겨찾기