npm软件包上的“ at”(@)前缀是什么意思?

2020/10/03 04:01 · javascript ·  · 0评论

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文档

编辑:似乎公共范围的软件包现在可以正确显示在搜索中!

基本上,npm上有两种类型的模块,它们是-

  • 全局模块-这些模块遵循当今存在的命名约定。require('foo')很高兴。他们由一个或多个人通过npm install XYZ命令拥有。

  • 作用域模块-这些是新的模块,它们以组织名称“范围”在组织名称下,组织名称以@组织名称,斜杠和程序包名称开头,例如@someOrgScope/packagename范围是将相关软件包组合在一起的一种方式,并且还会影响npm处理软件包的方式。

在npm install中,通过按名称引用作用域的软件包来安装作用域的软件包,在其前面带有@符号。

npm install @myorg/mypackage

也可以看看

本文地址:http://javascript.askforanswer.com/npmruanjianbaoshangde-atqianzhuishishenmeyisi.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!