乐闻世界logo
搜索文章和话题

Npm 包上的“@”前缀是什么意思?

7 个月前提问
5 个月前修改
浏览次数39

1个答案

1

在NPM包命名中,“@”前缀是用来指示一个包属于一个特定的命名空间或者称为“作用域”(scope)。作用域是一个由用户或组织控制的命名空间,它可以帮助管理和组织相关的包,并且能够避免命名冲突。使用作用域可以确保包名称的唯一性,因为即使不同的作用域下有相同的包名,它们仍然被认为是完全不同的包。

例如,Angular 团队有很多相关的包,这些包都放在 @angular 这个作用域下,比如 @angular/core, @angular/common 等。这样做不仅可以清晰地表明这些包都是 Angular 相关的,而且还可以避免与其他非 Angular 的包如 corecommon 发生命名冲突。

创建和发布作用域包的过程与普通包类似,但在命名时需加上作用域前缀。例如,如果我创建一个名为 example 的包,并且想将其放在我的个人作用域下 @myusername,则包的全名应该是 @myusername/example

在安装作用域包时,也需要包含作用域前缀,例如使用命令 npm install @angular/core

2024年6月29日 12:07 回复

你的答案