개발관련/other

npm 패키지에서 "at"(@) 접두어의 의미

Rateye 2021. 11. 22. 10:42
728x90
반응형
질문 : npm 패키지에서 "at"(@) 접두어의 의미는 무엇입니까?

Angular Component Router 문서에서 방금 전에 본 적이없는 npm 명령을 우연히 발견했고 무슨 일이 벌어지고 있는지 이해할 수 없습니다.

npm install @angular/router --save

@angular/router 의 의미는 무엇입니까?

전체 문자열이 패키지 이름입니까? 그러나 npmjs.com 에서 검색을 사용할 때 해당 패키지를 찾지 못했습니다. 또한 명령 줄 검색은 이러한 패키지를 반환하지 않습니다.

npm search @angular/router
:No match found for "@angular/router"

그래서 @angular/ 는 npm에서 접두사 메커니즘의 일종입니까? 그리고 어떻게 작동합니까?

답변

이것은 NPM 패키지의 네임 스페이스를 효과적으로 허용하는 '범위 지정 패키지'라는 NPM의 새로운 기능입니다. NPM의 모든 사용자와 조직에는 고유 한 범위가 있으며 패키지를 추가 할 수있는 유일한 사람입니다.

이것은 여러 가지 이유로 유용합니다.

  • 이를 통해 조직은 어떤 패키지가 '공식'인지 아닌지 명확하게 할 수 있습니다.
    • 예를 들어 패키지의 범위가 @angular 인 경우 Angular 핵심 팀에서 게시 한 것입니다.
  • 패키지 이름은 전체 레지스트리가 아니라 게시 된 범위에서만 고유해야합니다.
    • 예를 들어 패키지 이름 http 는 이미 주 저장소에 있지만 Angular는 @angular/http 도 가질 수 있습니다.

범위가 지정된 패키지가 공개 검색에 표시되지 않는 이유는 많은 패키지가 NPM의 유료 서비스를 사용하는 조직에서 만든 개인 패키지이고, 그렇지 않은지 완전히 확신 할 때까지 검색을 여는 것이 불편하기 때문입니다. 공개해서는 안되는 모든 것을 공개 할 것입니다. 법적 관점에서 볼 때 이것은 꽤 이해할 수 있습니다.

자세한 내용은 NPM 문서Angular 문서를 참조하십시오.

편집 : 공개 범위 패키지가 이제 검색에 제대로 표시되는 것으로 보입니다!

출처 : https://stackoverflow.com/questions/36667258/what-is-the-meaning-of-the-at-prefix-on-npm-packages
728x90
반응형