如何高效地管理npm源和Node版本?

作为一名前端开发,我相信在平时工作中不可避免地要和新老项目打交道,那么新项目与老项目用的 Node 版本肯定是不一样的。针对老项目,我们需要使用旧版本的 Node,而针对新项目需要使用近期版本的 Node,在不同的项目之间需要切换不同的 Node 版本。

我们在开发过程中,经常需要使用 Node 自带的 npm 安装包和下载包,使用其默认源下载会非常地慢,我们还需要设置国内的镜像来加速其下载过程,当我们发布 npm 包时还需要设置回 npm 官方源,从而发布至 npm 官网,那么有没有对应的工具来高效地管理它们呢?

管理 npm 源

npm 是世界上最大的软件注册表,在安装 Node 的时候,会一并把 npm 安装在我们的客户端上,但是因为 npm 的服务器在国外,我们使用 npm 安装一些第三方包的时候,使用其官方源下载速度会非常的慢,甚至可能会出现卡死不动的现象,我们可以使用 nrm 来高效地管理 npm 源。

安装

全局安装 nrm

为了便于安装 nrm ,我们可以先手动设置 taobao源

首先,在命令行终端输入 npm config set registry https://registry.npmmirror.com

然后,在命令行终端输入 npm install nrm -g 全局安装 nrm

查看 npm 所有源

在命令行终端输入 nrm ls

这时我们看到 nrm 帮我们列出其所有 npm 源地址,那我们如何切换源呢?

使用

切换源

首先确认下当前 npm 源是什么,在命令行终端输入 npm config get registry 查看当前 npm 源

上图显示我这边的当前 npm 源是 taobao 源,我们切换回 npm 源试试,在命令行终端输入 nrm use npm

查看一下当前源,在命令行终端输入 npm config get registry

此时已经切换会 npm 官方源,我们也可以在命令行终端输入 nrm ls 再确认下是否是 npm 官方源

我们看到 npm 官方源前面有个 * 号,可以确认当前源为 npm 官方源,下载第三方包或者 npm install 时还是建议使用 taobao 源 ,其下载速度还是挺快的,在命令行终端输入 nrm use taobao 这一行命令即可切换 taobao 源。值得注意的是,我们在发布 npm 包时,还是要切换到 npm 官方源。

nrm 其他命令

在命令行终端输入 nrm -h 看一下还有什么功能:

nrm current 查看当前源

nrm test [registry] 测试源的速度

显然 taobao 源的速度是快于 npm 源的。

管理 Node 版本

Volta 是一种轻松管理 JavaScript 命令行工具的方式,它的主要特点是,快、跨平台支持、支持多个包管理器、每个项目的无缝版本切换。

通过 Volta 管理 Node,我们就可以在每个项目之间指定特定的 Node 版本,而无需在命令行针对不同的项目频繁的切换 Node 版本。

安装

Mac

在命令行终端输入 curl https://get.volta.sh | bash

Windows

下载 Volta,然后根据提示安装。

使用

我们以 Windows 为例

在命令行终端输入 volta install node@18.19.0 Volta 会帮你安装指定版本的 Node 并作为全局默认版本。

在命令行终端输入 volta install node Volta 会帮你安装最新版本的 Node 并作为全局默认版本。

在命令行终端输入 volta install node@16 Volta 会自动帮你选择合适版本的 Node 并作为全局默认版本。

在命令行终端输入 volta list node 查看所有已经安装的 Node 版本,因为我之前安装过不同的版本,所以显示的版本比较多。

Volta 的优势在于可以在指定项目中使用不同的 Node 版本,不再像 nvm 之前那样在不同项目中频繁切换 Node 版本。

我们新建两个文件夹用于测试:

新建 ce1 文件夹,在其根目录输入 npm init 生成 package.json 文件,然后输入 volta pin node@20.11.0

Volta 就会在 package.json 文件中生成一个以 volta 为属性的对象,这代表了你在该项目中使用的 Node 版本,且该版本的 Node 只会在此项目中生效。

查看 ce1 文件夹中 Node 版本及 npm 版本:

新建 ce2 文件夹,同样在其根目录输入 npm init 生成 package.json 文件,这次我们输入 volta pin node@16.20.0

同样会在 package.json 文件中新增一个以 volta 为属性的对象:

查看 ce2 文件夹中 Node 版本及 npm 版本:

Volta 提供的这种管理 Node 版本的方式 相比于 nvm 每进入不同的项目就要手动切换不同的 Node 版本来说便捷多了,并且切换速度和下载速度都是非常快的,大大提高我们开发人员的工作效率。

相关推荐
暮毅5 分钟前
10.Node.js连接MongoDb
数据库·mongodb·node.js
神仙别闹16 分钟前
基于tensorflow和flask的本地图片库web图片搜索引擎
前端·flask·tensorflow
GIS程序媛—椰子1 小时前
【Vue 全家桶】7、Vue UI组件库(更新中)
前端·vue.js
DogEgg_0011 小时前
前端八股文(一)HTML 持续更新中。。。
前端·html
ZL不懂前端1 小时前
Content Security Policy (CSP)
前端·javascript·面试
木舟10091 小时前
ffmpeg重复回听音频流,时长叠加问题
前端
王大锤43912 小时前
golang通用后台管理系统07(后台与若依前端对接)
开发语言·前端·golang
我血条子呢2 小时前
[Vue]防止路由重复跳转
前端·javascript·vue.js
黎金安2 小时前
前端第二次作业
前端·css·css3
啦啦右一2 小时前
前端 | MYTED单篇TED词汇学习功能优化
前端·学习