在NPM包命名中,“@”前缀是用来指示一个包属于一个特定的命名空间或者称为“作用域”(scope)。作用域是一个由用户或组织控制的命名空间,它可以帮助管理和组织相关的包,并且能够避免命名冲突。使用作用域可以确保包名称的唯一性,因为即使不同的作用域下有相同的包名,它们仍然被认为是完全不同的包。
例如,Angular 团队有很多相关的包,这些包都放在 @angular
这个作用域下,比如 @angular/core
, @angular/common
等。这样做不仅可以清晰地表明这些包都是 Angular 相关的,而且还可以避免与其他非 Angular 的包如 core
或 common
发生命名冲突。
创建和发布作用域包的过程与普通包类似,但在命名时需加上作用域前缀。例如,如果我创建一个名为 example
的包,并且想将其放在我的个人作用域下 @myusername
,则包的全名应该是 @myusername/example
。
在安装作用域包时,也需要包含作用域前缀,例如使用命令 npm install @angular/core
。
2024年6月29日 12:07 回复