nrm的保姆级使用教程

2023-12-29 22:56:55

📢?鸿蒙专栏:想学鸿蒙的,冲

📢 C语言专栏:想学C语言的,冲

📢?VUE专栏:想学VUE的,冲这里

📢?CSS专栏:想学CSS的,冲这里

📢 Krpano专栏:想学VUE的,冲这里

🔔 上述专栏,都在不定期持续更新中!!!!!!!!!!!!!

目录

? 前言

? 什么是nrm

? 安装nrm

? 使用nrm

🔔 查看可用的源

🔔 增加自定义源

🔔 删除自定义源

🔔 测试源的响应时间

? 进阶应用

nrm的registry配置

永久使用源

nrm的权限控制

与yarn结合使用

使用nrm的安全性

? 结语


? 前言

????????作为前端开发,你一定使用过 npm 来安装第三方依赖包,但由于 npm 默认的下载仓储地址是?https://registry.npmjs.org/,属于外国的网站,所以我们下载的时候可能会非常的慢。所以淘宝也做了一个 npm 的镜像网站(看这里)。

比如我们切换成淘宝镜像源,我们可以通过以下命令完成切换:

$ npm config set registry https://registry.npmmirror.com/

# 或者直接在 npm 配置文件修改
$ npm config edit

? ? ? ? 虽然实现了镜像源的切换,但是这个貌似有点复杂,我们还要记住这个镜像地址?

? ? ? ? SO,nrm 它来了

? 什么是nrm

nrm(npm registry manager)是一个NPM源管理器,它允许你快速地在如下NPM源间切换:

  • npm
  • cnpm
  • taobao
  • nj(nodejitsu)
  • rednpm
  • skimdb(skimdb)
  • custom

? 安装nrm

使用npm全局安装nrm:

npm install -g nrm

? 使用nrm

🔔 查看可用的源

nrm ls

这将列出可用的NPM源及当前所使用的源。其中?*?号表示当前使用的源。

?

?切换源

nrm use 源名

?例如:

nrm use taobao

这将切换到taobao源。

🔔 增加自定义源

nrm add 源名 源地址

?例如:

nrm add company http://registry.company.com

这将增加一个公司内部的私有源company。

🔔 删除自定义源

nrm del 源名

这将删除之前添加的自定义源。

🔔 测试源的响应时间

nrm test 源名

这将测试该源的响应时间。?

? 进阶应用

🔔 nrm的registry配置

nrm切换源的本质是修改了npm的registry配置。我们可以通过以下命令查看npm的registry地址:

npm config get registry

默认是官方的https://registry.npmjs.org/。当使用nrm切换到其他源后,这个地址会被修改。

nrm的registry信息存储在用户根目录下的.nrmrc文件中。我们可以直接修改这个文件来添加/修改自定义源。

🔔 永久使用源

nrm切换的源在关闭终端后会还原。如果要永久使用某个源,可以在~/.npmrc文件中添加:

registry=https://registry.npm.taobao.org

这样每次使用npm安装都会默认通过这个源安装。

🔔 nrm的权限控制

nrm从v1.0开始增加了通过token进行源访问控制的功能。

对于私有源,可以通过--auth选项设置一个访问token:

nrm add company http://registry.company.com --auth token

这样其他用户必须通过token才能访问这个源。

🔔 与yarn结合使用

yarn也有多个源可以切换。我们可以统一配置yarn的源:

yarn config set registry http://registry.company.com

然后nrm和yarn就可以共用这个私有源了。

🔔 使用nrm的安全性

使用公共源存在一定安全风险。建议企业构建私有源,同时通过源访问控制,进行安全管理。

大家在使用各种NPM源时,也需要注意校验安装包的完整性,保障代码安全。

?

? 结语

????????nrm是一个非常便捷的NPM源管理工具,让我们可以一键切换不同的NPM源,特别是在国内可以使用taobao等国内源来提高安装速度。如果需要构建私有NPM源,nrm也提供了添加自定义源的方式。

文章来源:https://blog.csdn.net/qq_41152573/article/details/135291859
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。