
原文: https://mp.weixin.qq.com/s/SGqU9Aziv_TOz6X9dYRXzA
神器 nvm 全攻略:多版本 Node 自由切换,安装使用疑难一网打尽
nvm 是一个用于管理多个 Node.js 版本的命令行工具。简单讲,它能让你轻松切换和使用不同版本的 Node.js,方便开发和测试。适用人群:Node.js 开发者、前端工程师
项目地址:https://github.com/nvm-sh/nvm
主要语言:Shell
stars: 89.2k
核心功能
nvm 是一个用于管理 Node.js 版本的工具,允许用户通过命令行快速安装和切换不同版本的 Node.js。借助 nvm,用户可以轻松地在不同项目中使用不同版本的 Node.js,避免版本冲突问题。
安装与更新
- 安装脚本:可使用
curl或wget命令下载并运行安装脚本。脚本会将nvm仓库克隆到~/.nvm目录,并尝试将相关配置添加到正确的配置文件中。 - 其他安装方式:支持通过
git安装和手动安装,手动安装时需克隆仓库并执行相应命令加载nvm。 - 更新:可以使用安装脚本更新,也可通过
git手动更新。
使用方法
- 安装 Node.js:可以安装最新版本,也能指定特定版本进行安装。
- 版本切换:使用
nvm use命令切换 Node.js 版本。 - 别名设置:可以为特定版本设置别名,方便使用。
- 查看版本:使用
nvm ls查看已安装版本,使用nvm ls-remote查看可安装版本。
特色功能
- 长期支持版本管理:支持使用
lts/*等符号引用长期支持版本,方便管理。 - 全局包迁移:在安装新版本时,可以迁移之前版本的全局 npm 包。
- 默认全局包设置:可在
$NVM_DIR/default-packages文件中设置每次安装新版本时默认安装的全局包。 .nvmrc文件支持:在项目根目录创建.nvmrc文件,指定项目所需的 Node.js 版本,进入该目录时可自动切换版本。
兼容性与问题解决
- 支持的平台:支持在 Unix、macOS 和 Windows WSL 等 POSIX 兼容的 shell 中使用。
- 兼容性问题:部分非默认设置可能导致兼容性问题,如
~/.npmrc中的prefix设置等。 - 特定系统问题解决:针对 Linux、macOS、Alpine Linux 和 WSL 等系统,文档提供了详细的安装和故障排除方法。
测试与环境变量
- 测试:项目提供了测试脚本,可运行快速测试、慢速测试或全部测试。
- 环境变量:
nvm暴露了多个环境变量,如NVM_DIR、NVM_BIN等,方便用户进行配置。
优势与应用场景
- 优势:操作简单,能有效解决 Node.js 版本管理问题,提高开发效率。
- 应用场景:适用于需要在不同项目中使用不同 Node.js 版本的开发者,以及进行 Node.js 开发和测试的环境。
Traefik:自动配置的现代HTTP反向代理,让微服务部署轻松无忧!
traefik 是一个云原生应用代理的反向代理和负载均衡工具。简单讲,它能自动管理微服务的流量路由,让应用轻松对外提供服务。适用人群:云原生开发者、运维工程师
项目地址:https://github.com/traefik/traefik
主要语言:Go
stars: 58.0k

核心功能
Traefik 是一款现代 HTTP 反向代理和负载均衡器,旨在简化微服务的部署。它能够与多种现有基础设施组件集成,如 Docker、Kubernetes、Consul 等,并自动、动态地进行自我配置。
优势
- 自动配置:传统反向代理需要手动为每个微服务配置路由,在微服务频繁变更的环境下,维护路由信息十分繁琐。而 Traefik 可以监听服务注册中心或编排器的 API,自动生成路由,无需人工干预,当然它也支持手动配置部分路由。
- 功能丰富
- 动态更新:可在不重启的情况下持续更新配置。
- 多种负载均衡算法:支持多种负载均衡策略,满足不同场景需求。
- HTTPS 支持:借助 Let's Encrypt 为微服务提供 HTTPS 支持,还支持通配符证书。
- 熔断和重试机制:具备电路断路器和重试功能,增强系统的稳定性。
- 简洁 Web UI:通过简洁的 Web UI 可以直观地查看系统运行情况。
- 多协议支持:支持 WebSocket、HTTP/2、gRPC 等协议。
- 指标监控:提供多种指标监控方式,如 Rest、Prometheus、Datadog 等。
- 日志记录:支持 JSON 和 CLF 格式的访问日志记录。
- 高性能:运行速度快,能高效处理请求。
- Rest API:暴露 Rest API,方便进行系统集成和管理。
- 易于部署:以单个二进制文件形式打包,并且有官方的 Docker 镜像。
支持的后端
支持 Docker/Swarm mode、Kubernetes、ECS、File 等多种后端。
应用场景
- 微服务架构:在微服务环境中,Traefik 可以自动发现和配置服务路由,使微服务能够对外提供服务,大大简化了微服务的部署和管理。
- 容器化环境:与 Docker、Kubernetes 等容器编排工具集成,为容器化应用提供反向代理和负载均衡功能。
快速开始
可参考文档中的 5 分钟快速入门,此过程需要使用 Docker。
下载方式
- 从 releases 页面获取最新二进制文件,并使用 示例配置文件 运行。
- 使用官方 Docker 镜像,并挂载示例配置文件运行。
- 通过
git clone https://github.com/traefik/traefik获取源代码。