npm源管理工具:nrm的基础使用

nrm是什么

nrmNPM registry manager)是 npm镜像源 管理工具,使用它可以快速切换 npm 的源。

npm 默认情况下是使用npm官方源(https://registry.npmjs.org/),属于国外的网址,国内使用这个源下载东西特别慢,一般我们都会用淘宝的npm源(https://registry.npm.taobao.org

淘宝 npm 的镜像网站

  • 查看当前npm源:npm config ls

  • 切换npm源:
    npm set registry https://registry.npm.taobao.org/ 但是注意! 这个源已经到期,不能用了!

目前需要使用最新npm源: https://registry.npmmirror.com

淘宝命令工具 cnpm 使用(不推荐)

npm安装cnpm:npm install -g cnpm --registry=https://registry.npmmirror.comcnpm

查看cnpm是否安装成功: cnpm -v

为什么不推荐使用cnpm?

go 复制代码
使用 `npm` 作为前端项目包管理工具的话,通常我们前端项目中都会有 `package-lock.json` 文件。
使用 `npm` 和 `cnpm` 来安装依赖包是有区别的,这两个命令对其有一定的影响:

> -   `cnpm i`不受 `package-lock.json` 影响,只会根据 `package.json` 进行下载安装。
> -   `cnpm i xxx@xxx`不会更新到 `package-lock.json` 中去。
> -   `npm i xxx@xxx` 会更新到 `package-lock.json` 中去。

在多人协作维护的项目中,`package-lock.json` 是必不可少的。是为了确保不同开发者安装的包及其依赖保持一致,同时也是降低不同版本 npm 包给项目稳定性带来的影响。尤其是一些不遵循[语义化版本控制](https://www.jianshu.com/p/69a98fd20c83)的第三方 npm 包,就很容易被坑。

nrm安装

全局安装nrm,终端输入: npm install -g nrm

  • 安装nrm失败:

    如果使用npm安装nrm失败或长时间没反应,注意先查看当前npm源是什么 npm config ls,我这里安装失败是因为当前npm的源还是旧的 https://registry.npm.taobao.org

    切换最新npm源: npm config set registry https://registry.npmmirror.com

    查看是否成功:npm config get registry

  • 重新安装nrm安装成功:

nrm使用

  • 查看所有源 nrm ls

    其中带*号的是当前使用的源,上图表明当前源为 taobao

    或者直接使用nrm current命令,也可以查看当前源:

  • 使用源 nrm use taobao

  • 添加源 nrm add <registry源名称> <url源地址>

  • 删除源 nrm del <registry>

  • 测试源响应时间 nrm test <registry>

注意切换源之后 ,我们安装依赖时仍使用 npm i xxx 的方式来进行安装。

相关推荐
Henrii_历小海8 分钟前
WhatsApp Web 不是手机镜像:多设备协议、本地数据流与出海获客流水线
前端·智能手机
ayqy贾杰15 分钟前
Claude Fable 5 提示词泄漏,抓紧学习下
前端·后端·面试
To_OC8 小时前
别再串行写 await 了,Promise.all 才是并行请求的正确打开方式
前端·javascript·promise
vipbic9 小时前
中后台越做越乱后,我用插件化把它救回来了
前端·vue.js
Hyyy9 小时前
Computer Use 适合做什么,不适合做什么——一次真实使用后的思考
前端
小和尚同志9 小时前
前端 AI 单元测试思考与落地
前端·人工智能·aigc
invicinble11 小时前
c端系统,其实更像一个信息展示平台
前端
李姆斯11 小时前
管理是否可以被完全量化
前端·产品经理·团队管理
名字还没想好☜12 小时前
Next.js 中间件实战:鉴权、重定向与 A/B 分流
开发语言·前端·javascript·中间件·react·next.js
广州灵眸科技有限公司12 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) INI文件操作
java·前端·javascript·网络·人工智能