gpt4 book ai didi

javascript - npm 包上的 "at"(@) 前缀是什么意思?

转载 作者:IT老高 更新时间:2023-10-28 13:15:21 28 4
gpt4 key购买 nike

Angular Component Router documentation我只是偶然发现了一个我以前从未见过的 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

scoped packages don't show up in public search 的原因是因为它们中的很多是由使用 NPM 付费服务的组织创建的私有(private)包,并且他们不愿意打开搜索,直到他们完全确定他们不会公开任何不应该公开的内容 - 从从法律的 Angular 来看,这是可以理解的。

有关详细信息,请参阅 NPM docsAngular docs .

编辑:看来public scoped packages now show up properly in search!

关于javascript - npm 包上的 "at"(@) 前缀是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36667258/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com