npm 包为什么以 @ 符号为前缀

1,478 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第28天,点击查看活动详情

图片来源于网络,侵权必删

前言

本文主要记录了日常学习中的一个小疑问:npm 包为什么以 @ 符号为前缀。

image.png

@ 前缀是什么意思?

@前缀表示该软件包是范围包,类似于相对路径那样。

image.png

@前缀表示这个包是一个相对空间下的一个软件包。

例如:如果现在有一个包叫myPlugs,而你恰好也想上传一个包。如果是范围包那么你也可以发布同名的包myPlugs。但如果是无范围的包,已经存在一个myPlugs的包,那么你发布的包名就不能叫myPlugs了。

范围

当然这个相对的范围是我们在注册npm帐户时,系统自动分配给我们的。我们可以在这个匹配的范围内,发布我们自己的包。

且在这个范围内创建发布的包不会与其他用户或组织创建的包同名的包,而不会发生冲突。

当在package.json文件中作为从属项列出时,带作用域的程序包之前带有其作用域名称。范围名称是介于@和斜线之间的所有内容。

例如下图:

图片来源于网络,侵权必删.png

命名格式

范围包的命名格式,遵从这个规范:

@myorg/mypackage 即: @组织名/包名

这种包被称为 Scoped Package。

ps: Scope 的定义非常宽泛,可以使一名普通的开发者,或者一个组织都可以定义为 Scope。

本文到此结束

如果大家还有什么其他想法,欢迎在评论区交流!