Mac 上切换 node 版本总结

背景

在做项目的时候,往往会遇到老项目没有升级的问题,node环境版本比较低,自己电脑安装或者新项目安装了最新版本的 node 环境,那么既要支持老版本的使用也要支持新版本那么怎么办呢?

Mac 提供了切换node版本的办法

  • nvm
  • n

首先介绍 nvm

nvm 安装

brew install nvm

安装成功之后,还不能直接使用nvm命令,需要进行以下配置,将以下命令复制到终端执行:

echo "source $(brew --prefix nvm)/nvm.sh" >> .bash_profile

修改之后,需要重新定向来源,复制以下命令并执行:

. ~/.bash_profile

通过 nvm ls-remote 查看 node 所有版本

    v16.7.0
v16.8.0
v16.9.0
v16.9.1
v16.10.0
v16.11.0
v16.11.1
v16.12.0
v16.13.0 (LTS: Gallium)
v16.13.1 (Latest LTS: Gallium) // 当前稳定版本
v17.0.0
v17.0.1
v17.1.0
v17.2.0
v17.3.0

nvm install xx.xx.xx (版本号) 安装指定版本 node

nvm install 17.3.0

安装成功后 nvm ls 可以查看已经安装到本地的node版本

nvm ls

nvm use node 使用本地最新node环境

nvm use 17.3.0 指定版本node环境

nvm 常用命令

  • nvm list 查看已经安装的版本
  • nvm list installed 查看已经安装的版本
  • nvm list available 查看网络可以安装的版本
  • nvm version 查看当前的版本
  • nvm install 安装最新版本nvm
  • nvm use ## 切换使用指定的版本node
  • nvm ls 列出所有版本
  • nvm current显示当前版本
  • nvm alias ## 给不同的版本号添加别名
  • nvm unalias ## 删除已定义的别名
  • nvm reinstall-packages ## 在当前版本node环境下,重新全局安装指定版本号的npm包
  • nvm on 打开nodejs控制
  • nvm off 关闭nodejs控制
  • nvm proxy 查看设置与代理
  • nvm node_mirror [url] 设置或者查看setting.txt中的node_mirror,如果不设置的默认是 https://nodejs.org/dist/
  • nvm npm_mirror [url] 设置或者查看setting.txt中的npm_mirror,如果不设置的话默认的是: https://github.com/npm/npm/archive/.
  • nvm uninstall 卸载制定的版本
  • nvm use [version] [arch] 切换制定的node版本和位数
  • nvm root [path] 设置和查看root路径
  • 注:nvm 只能查看和切换 通过nvm 安装的 node 环境,通过其他方式安装的node 不能查看

安装成功后 nvm 可能存在问题

  • nvm 安装后存在 -bash: nvm: command not found

    解决办法:

    找到 nvm 目录 可能安装在 /usr/local/Cellar 也可能 .vnm
  • 编辑 .bash_profile 文件

    vim ~/.bash_profile

    目录 /usr/local/Cellar 添加

    export NVM_DIR="/usr/local/Cellar/nvm/版本号"

    [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

    目录 .nvm

    export NVM_DIR="$HOME/.nvm"

    [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

2)配置 .zshrc 文件

打开.zshrc文件

open ~/.zshrc

添加配置

export NVM_DIR=~/.nvm
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

保存配置后在终端执行

source ~/.zshrc

n 切换node

安装n

sudo npm i -g n

安装成功后查看版本

  • 可以通过 n help 查看所有命令
n -V

查看所有 node 版本

n lsr // 查看最进 20 个版本
n lsr --all // 查看所有版本

安装指定版本 node

n xx.xx.x (xx.xx.x 为要安装的版本号)

安装最新版本

n lastest

安装最新稳定版

n stable

切换node版本(输入命令后上下键盘选择确认)

n

删除某个版本

n rm xx.xx.x

使用某个版本来运行脚本

n use xx.xx.x a.js
  • 注: n 也是只能查看和切换通过n 安装的 node,其他方式安装的node 不能进行切换

  • 推荐使用 n 的方式来管理 node 版本, 简单没有复杂配置

Mac 上切换 node 版本总结的更多相关文章

  1. Mac上配置不同版本的JDK

    Mac上JDK的版本为1.8,编译AOSP时发现需要JDK 1.7.想找一种比较容易切换JDK版本的方式,经过一番Google发现Jenv比较合适. 安装Jenv至少有三种方式: - $ git cl ...

  2. Mac 上卸载node和npm

    Mac 上卸载node和npm 卸载node依次在终端执行下面的脚本 sudo npm uninstall npm -gsudo rm -rf /usr/local/lib/node /usr/loc ...

  3. 如何在windows下切换node版本

    安装nvm 最近的项目中,一个是用vue项目开发,一个是使用react开发,但是ant design pro使用了umi框架,所需要的node版本>10.0.0,vue那个项目中又不兼容node ...

  4. Mac 上Python多版本切换

    Mac上自带了Python2.x的版本,有时需要使用Python3.x版本做开发,但不能删了Python2.x,可能引起系统不稳定,那么就需要安装多个版本的Python. 1.安装Python3.x版 ...

  5. 在Mac上Python多版本切换

    1.安装Homebrewhttps://brew.sh/index_zh-cn.html 2.通过brew安装pyenv1)命令行输入:$ brew install pyenv(如果一直卡在Updat ...

  6. 使用GNVM工具高效切换node版本

    在开发中,有时候需要在多个node版本之间切换,重复手动下载安装node安装包来切换版本很麻烦,在Mac系统中可以使用nvm工具,而windows系统无法使用nvm工具.gnvm解决了在windows ...

  7. mac上Python多版本共存(python2.7.10和python3.5.0)

    本文的实现目标是在mac上安装一个python3.5.0的版本,跟当前系统自带的python2.7.10共存. 查看当前版本号 python -V 2.7.10 安装配置Python版本管理器pyen ...

  8. mac上Python多版本共存

    http://www.cnblogs.com/mingaixin/p/6295963.html https://www.cnhzz.com/pyenv_virtualenv_virtaulenvwra ...

  9. 【vue】Mac上安装Node和NPM

    http://bubkoo.com/2017/01/08/quick-tip-multiple-versions-node-nvm/ 作为前端开发者,node和npm安装必不可少.然而有时会因为安装新 ...

  10. 如何在Mac上切换python2和python3以及下载安装包 & 在Mac上如何查找系统自带python2.7的路径

    电脑:系统是Mac OS  系统自带python2.7  自己下载安装了python3.6 问题:一开始我想在终端下执行python2的相关代码   例如 python kNN.py (kNN.py这 ...

随机推荐

  1. 平台建设的7大问题:蚂蚁AI平台实践深度总结

    简介: 在支持蚂蚁几乎所有核心业务运行和发展的过程中,我们在平台建设.业务支持.平台运营.AI创新以及AI整体运营等各个方面做了很多尝试,有了不少的收获和感悟,在此分享给大家. 过去几年,我和团队一直 ...

  2. 数仓架构的持续演进与发展 — 云原生、湖仓一体、离线实时一体、SaaS模式

    简介: 数据仓库概念从1990年提出,经过了四个主要阶段.从最初的数据库演进到数据仓库,到MPP架构,到大数据时代的数据仓库,再到今天的云原生的数据仓库.在不断的演进过程中,数据仓库面临着不同的挑战. ...

  3. [Go] Viper 加载项目配置,go build 打包配置文件进二进制

    Viper 的传统用法局部,加载到某个 package 下的全局变量后,其它 package 可以继续使用. var Conf *viper.Viper func init() { // File n ...

  4. 读取 k8s 存储在 etcd 上的数据

    读取 k8s 存储在 etcd 上的数据 Etcd Assistant 是一款 Etcd 可视化管理工具,便捷高效地操作您的 etcd 集群:支持多种键的视图:管理租约.用户.角色和权限. etcd是 ...

  5. jqGrid--动态列

    前台部门 <select id="xuenian" name="xuenian" class="form-control">&l ...

  6. Java中的读写锁ReentrantReadWriteLock详解,存在一个小缺陷

    写在开头 最近是和java.util.concurrent.locks包下的同步类干上了,素有 并发根基 之称的concurrent包中全是精品,今天我们继续哈,今天学习的主题要由一个大厂常问的Jav ...

  7. Educational Codeforces Round 160 (Rated for Div. 2)

    A 直接模拟,注意细节 #include<bits/stdc++.h> #define ll long long using namespace std; ll p[15] = {1}; ...

  8. 九、DataArts Studio

    功能总览: 基本概念: 主题设计:通过分层架构表达对数据的分类和定义,帮助理清数据资产,明确业务领域和业务对象的关联关系. 主题域分组:基于业务场景对主题域分组. 主题域:互不重叠数据的高层面的数据分 ...

  9. HTTPS 是如何进行安全传输的 ?

    概述 现代密码学对信息的处理主要离不开以下的三种形式: 摘要:主要用于数据校验,例如存储密码等,摘要是对信息进行单向的哈希,改变信息的原有形态,因为哈希函数的特点是易变性(即使微小的变化也会产生完全不 ...

  10. docker / compose 的安装 和 体验

    文档 官网文档 视频 视频 简介 课程内容 1.Docker Compose 容器编排 2.Docker Swarm #集群 热扩容 需要在阿里上买服务器,至少冲100+以上的人民币 文档: 集群方式 ...