node版本管理

本文最后更新于:8 个月前

本文介绍了Window和Linux系统下的node版本管理。Window下使用fnm,Linxu下使用n

node版本管理

一、node版本管理(Window)

1、FAQ

  • Q:卸载node,所有npm包会被同时卸载吗

    A:会,npm目录里的包不会被删除,但是已经无法使用了

2、卸载node

卸载的node版本是:16.14.2(后面两位忘了,可能是2)。 卸载之前,先查看记录npm全局下安装的包,以备不时之需

1
2
3
4
5
6
7
8
npm list -g
C:\Users\timegogo\AppData\Roaming\npm
+-- cnpm@7.1.1
+-- express-generator@4.16.1
+-- hexo-cli@4.3.0
+-- nodemon@2.0.15
+-- rimraf@3.0.2
`-- vue-cli@2.9.6

直接使用node自带的uninstall程序卸载即可,可以在start menu中找到,卸载后自动删除了node文件夹,但是还保留了npm文件夹(但是npm命令已经不能用了)

3、安装NVM

nvm全英文也叫node.js version management,是一个nodejs的版本管理工具(是一个可以在windows环境使用的版本管理,n不能在windows下使用)

nvm安装目录 C:\Users\timegogo\AppData\Roaming\nvm
node存放目录 C:\Program Files\nodejs

原来全局安装的node对应的npmnvm 包的目录:C:\Users\timegogo\AppData\Roaming\npm

4、NVM命令

命令 作用
nvm list available 显示可下载node版本的部分列表
nvm arch 显示node是运行在32位还是64位
nvm install < version > [arch] 安装node, version是特定版本也可以是最新稳定版本latest。
可选参数arch指定安装32位还是64位版本,默认是系统位数
nvm uninstall < version > 卸载指定版本node
nvm use [version] [arch] 使用指定版本node。可指定32/64位。(启用的 node 版本前面有 * 标记)
nvm version 显示nvm版本。
nvm ls 查看目前已经安装的版本
nvm on 开启node.js版本管理
nvm off 关闭node.js版本管理

NVM在安装命令执行过程中,没有任何提示,很容易让人误解卡程序了,但实际上它正在执行,这点交互不是很好。

通过NVM安装的node,需要先启动NVM,即nvm on之后,才能使用node

5、放弃NVM

因为一个解决不了的bug,libnpmfund - npm ERR! Unexpected token ‘.’ · Issue #814 · coreybutler/nvm-windows (github.com),高版本的node,对应的npm命令无法使用,所以放弃了NVM。

6、改用fnm

安装fnm的过程比较曲折,因为它没有安装包,只能通过包管理器下载,所以我们必须先安装包管理器,有3种包管理器可选,我选择了scoop,因为这个比较干净。

1、安装scoop

Scoop——也许是Windows平台最好用的软件(包)管理器

安装过程参考:Scoop安装详解,需要翻墙,和配置一些参数,而且需要使用powershell(而不是cmd)执行安装命令

安装默认目录:C:\Users\timegogo\scoop

scoop官网:Scoop

scoop用法简易教程:Scoop——也许是Windows平台最好用的软件(包)管理器 - 知乎 (zhihu.com)

安装好之后就可以在cmd窗口中执行了,好像又不太行,因为在cmd安装失败了,但是在powershell中安装成功了

2、安装fnm

github地址:Schniz/fnm: 🚀 Fast and simple Node.js version manager, built in Rust (github.com)

fnm简易教程:nodejs版本管理工具fnm - 掘金 (juejin.cn)

正式使用fnm服务之前,还必须进行setup操作,详见Schniz/fnm: 🚀 Fast and simple Node.js version manager, built in Rust (github.com)

image-20220812224924791

具体要在powershell的配置文件中加入一行代码,但是这个配置文件默认情况下是没有创建的,所以还需要先创建它,创建教程见:关于配置文件 - PowerShell | Microsoft Docs

然后就,大功告成!

image-20220812225217665

二、fnm,node版本管理工具

安装fnm的过程见上面。这里介绍fnm的常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
fnm --help		#查看帮助

alias
Alias a version to a common name
completions
Print shell completions to stdout
current
Print the current Node.js version
default
Set a version as the default version
env
Print and set up required environment variables for fnm
exec
Run a command within fnm context
help
Print this message or the help of the given subcommand(s)
install
Install a new Node.js version
list
List all locally installed Node.js versions [aliases: ls]
list-remote
List all remote Node.js versions [aliases: ls-remote]
unalias
Remove an alias definition
uninstall
Uninstall a Node.js version
use
Change Node.js version

三、node版本管理(Linux)

n模块是用来安装各个版本的node的一个工具

1、安装n

1
2
npm install -g n
n -V #查看n版本

2、管理node版本

1
2
3
4
5
6
7
8
9
10
11
n ls		#查看当前已存在的node版本
n run 版本号 #切换到指定node版本

n 版本号 #下载指定版本node
n install 版本号 #同上
n lts #下载最新的稳定版本

n which 版本号 #查看指定版本node的存放路径

n uninstall 版本号 #卸载指定版本node
n rm 版本号 #删除指定版本的node

3、查看更多n命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
n -h

Usage: n [options] [COMMAND] [args]

Commands:

n Display downloaded Node.js versions and install selection
n latest Install the latest Node.js release (downloading if necessary)
n lts Install the latest LTS Node.js release (downloading if necessary)
n <version> Install Node.js <version> (downloading if necessary)
n install <version> Install Node.js <version> (downloading if necessary)
n run <version> [args ...] Execute downloaded Node.js <version> with [args ...]
n which <version> Output path for downloaded node <version>
n exec <vers> <cmd> [args...] Execute command with modified PATH, so downloaded node <version> and npm first
n rm <version ...> Remove the given downloaded version(s)
n prune Remove all downloaded versions except the installed version
n --latest Output the latest Node.js version available
n --lts Output the latest LTS Node.js version available
n ls Output downloaded versions
n ls-remote [version] Output matching versions available for download
n uninstall Remove the installed Node.js

Options:

-V, --version Output version of n
-h, --help Display help information
-p, --preserve Preserve npm and npx during install of Node.js
-q, --quiet Disable curl output. Disable log messages processing "auto" and "engine" labels.
-d, --download Download if necessary, and don't make active
-a, --arch Override system architecture
--all ls-remote displays all matches instead of last 20
--insecure Turn off certificate checking for https requests (may be needed from behind a proxy server)
--use-xz/--no-use-xz Override automatic detection of xz support and enable/disable use of xz compressed node downloads.

Aliases:

install: i
latest: current
ls: list
lsr: ls-remote
lts: stable
rm: -
run: use, as
which: bin

node版本管理
http://timegogo.top/2022/11/27/后端/node:node版本管理/
作者
丘智聪
发布于
2022年11月27日
更新于
2023年7月16日
许可协议