1、搜索和选择要下载的包
您可以使用npm搜索栏来查找要在项目中使用的包。npm搜索使用npms和npms分析器;
npms-代表npm search -旨在通过为node包提供更好的开源搜索来增强JavaScript社区。
1.1 为什么使用
npmjs.com允许开发人员搜索node包,但是使用过一段时间后,发现搜索到的结果不是很满意。官方搜索由Elasticsearch提供
支持,但没有配置高级分析器。更具体地,不启用词干提取
或拆分
。这对你意味着什么?尝试搜索“couchdb promise
”和“couchdb promise
”,看看搜索结果有多大不同。想象一下,由于这个原因,您在以前的搜索中丢失了多少包。
当屏幕上显示结果列表时,结果的顺序仅基于它们与搜索词的相关性。npmjs.com搜索不考虑软件包的价值,以将好的软件包排名更高。因此,用户必须手动逐个分析搜索结果,同时考虑到多个属性,例如软件包的版本(> 1.0.0
?),下载次数、最新发布日期、GitHub问题数量、星、叉等。这一过程既繁琐又缓慢。
1.2 工作原理
npms分析器不断分析npm生态系统,从各种来源收集尽可能多的信息,包括GitHub,David
和nsp
。使用收集到的信息,根据四个不同的方面计算每个包的最终分数:
1、质量
质量属性易于计算,因为它们是独立的。这些是人们在签出包时首先查看的属性。
- 是否README文件?是否有License?是否有.gitignore和friends。
- 版本稳定吗(>1.0.0),是否已弃用
- 是否有测试,覆盖率是多少?构建是否通过
- 是否存在过时的依赖,是否有漏洞?
- 是否有自定义的网站,是否有徽标?
- 是否有已配置的链接?
2、维护
维护属性使我们能够了解包是否处于活动状态和运行状况,或者是否被放弃。这些通常是人们在检查包时查看的第二种属性。
- 未解决的问题与总问题的比例
- 关闭问题所需的时间
- 最近提交
- 提交频率
- 发布频率
3、受欢迎程度
受欢迎程度属性使我们能够了解包的采用率和社区规模。这些是人们在未决定包选择时查看的属性。
- 星数
- 分叉数量
- 订阅者数量
- 贡献者数量
- 依赖数
- 下载次数
- 下载加速
4、名气
如果两个包相似,则倾向于选择其作者在社区中广为人知的包。
人与人之间的关系也很重要。当用户关注另一个用户时,他们之间有一个链接。我们可以推断人们更喜欢他们关注的用户的软件包。
1.1、开始搜索包
在搜索栏中,键入搜索词,然后按Enter键。当您输入时,可能的选项将出现。
2、根据包的搜索排名规则列出所对应的包名称,包版本,以及基本描述信息。
3、在搜索列表中点击对应的包名,会进入包的详细描述页面。
npm注册中心搜索页面默认如下所示(npm)
第一部分是展示的一些最受欢迎的一些包。
第二部分是按类型发现的一些包。
第三部分是包的总数,最近一周的下载量,最近一月的下载量。
第四部分是最近更新的一些包。
2、在本地安装下载和安装软件包
如果你想依赖你自己模块中的包,你可以在本地安装
一个包,使用类似Node.js中require进行引用,然后就可以使用包中的功能了。
2.1 安装未限定作用域的包
无作用域的软件包始终是公共的,这意味着任何人都可以搜索、下载和安装它们。若要安装公共包,请在命令行上运行
npm install <package_name>
这将在当前目录中创建node_modules
目录(如果还不存在),并将软件包下载到该目录。
注意:如果本地目录中没有
package.json
文件,则安装最新版本的软件包。如果存在
package.json
文件,npm会安装满足package.json
中声明的最新版本。
2.2 安装有作用域的公共包
任何人都可以下载和安装作用域公共包
,只要在安装过程中引用作用域名称:
npm install @scope/package-name
2.3 安装私有包
私有软件包
只能由被授予对该软件包的读访问权限的用户下载和安装。由于私有包总是有作用域的,所以在安装过程中必须引用作用域名称:
npm install @scope/private-package-name
2.4 测试包安装
要确认npm install
工作正常,请在您的模块目录中检查node_modules
目录是否存在,并且它包含您安装的软件包的目录:
ls node_modules
2.5 已安装的软件包版本
如果在运行package.json
的目录中有npm install
文件,npm会安装满足package.json
中声明的语义版本控制规则
的最新版本的包。
如果没有package.json
文件,则安装最新版本的软件包。
2.6 安装带有dist-tags的包
与npm publish
一样,npm install <package_name>
默认使用latest
标签。
要覆盖此行为,请使用npm install <package_name>@<tag>
。例如,要在标记为example-package
的版本上安装beta
,可以运行以下命令:
npm install example-package@beta