如何高效地管理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 版本来说便捷多了,并且切换速度和下载速度都是非常快的,大大提高我们开发人员的工作效率。

相关推荐
Calm55016 分钟前
ele表单未输入值提示为英文
前端
爪洼守门员31 分钟前
前端性能优化
开发语言·前端·javascript·笔记·性能优化
TOYOAUTOMATON36 分钟前
GTH系列模组介绍
前端·目标检测·自动化
2022.11.7始学前端41 分钟前
n8n第十节 把Markdown格式的会议纪要发到企微
前端·chrome·n8n
fruge1 小时前
Lodash 源码精读:防抖节流的实现细节与边界场景
前端
yuzhiboyouye1 小时前
怎么熟悉一个web前端项目的业务呢?
前端
GISer_Jing1 小时前
AI在前端营销和用户增长领域应用(待补充)
前端·人工智能
橘子海全栈攻城狮1 小时前
【最新源码】基于springboot的会议室预订系统设计与实现 014
java·开发语言·前端·spring boot·后端·spring·自动化
1024肥宅1 小时前
前端常用模式:提升代码质量的四大核心模式
前端·javascript·设计模式
carry杰2 小时前
nacos bootstrap.yml 动态配置开发测试线上模式
前端·bootstrap·html