롤업의 최신 릴리스가 각도 라이브러리 빌드에 미치는 영향
다음은 모노 저장소의 기술 스택입니다.
폴더 구조:-
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
Reference
이 문제에 관하여(롤업의 최신 릴리스가 각도 라이브러리 빌드에 미치는 영향), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nagarlalit/how-rollups-latest-release-affected-our-angular-library-build-3j8p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)