You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无法定位nvm安装路径及在其他Shell脚本中使用nvm的问题求助

无法定位nvm安装路径及在其他Shell脚本中使用nvm的问题求助

最近在Ubuntu 24.04环境下折腾nvm的时候碰到了两个头疼的问题:一是找不到nvm的具体安装路径,二是写Shell脚本时没法正常调用nvm相关命令。我先把直接输入nvm后弹出的帮助信息整理出来,麻烦各位大佬帮我分析分析怎么解决!


nvm基础说明

Node Version Manager (v0.40.3)

<version> 指的是nvm能识别的任何版本格式字符串,包括:

  • 完整或部分版本号,可带可选前缀"v"(比如0.10、v0.1.2、v1)
  • 内置默认别名:node、stable、unstable、iojs、system
  • 你通过nvm alias foo自定义的别名

所有支持彩色输出的选项都可以通过--no-colors参数禁用彩色显示。


可用命令及参数列表

nvm --help

显示本帮助信息

nvm --no-colors

强制禁用彩色输出

nvm --version

打印当前已安装的nvm版本号

nvm install [<version>]

下载并安装指定<version>;如果省略版本号且当前目录存在.nvmrc文件,则自动使用该文件中的版本。
以下可选参数必须紧跟在nvm install之后:

  • -s:跳过二进制包下载,仅从源码编译安装
  • -b:跳过源码下载,仅使用二进制包安装
  • --reinstall-packages-from=<version>:安装完成后,自动重新安装指定版本(node/iojs/具体版本号)中的全局npm包
  • --lts:仅筛选安装LTS(长期支持)版本
  • --lts=<LTS name>:仅筛选安装指定LTS分支下的版本
  • --skip-default-packages:安装时跳过default-packages配置文件(如果存在)
  • --latest-npm:安装完成后,尝试升级到当前Node版本兼容的最新npm版本
  • --no-progress:禁用下载过程中的进度条显示
  • --alias=<name>:安装完成后,将指定别名指向当前安装的版本(等同于单独执行nvm alias <name> <version>
  • --default:安装完成后,将default默认别名设置为当前安装的版本(等同于单独执行nvm alias default <version>
  • --save:安装完成后,将当前版本写入.nvmrc文件

nvm uninstall <version>

卸载指定的Node版本

  • nvm uninstall --lts:通过自动LTS别名lts/*卸载对应版本(如果该别名存在)
  • nvm uninstall --lts=<LTS name>:通过指定LTS分支的自动别名卸载对应版本(如果该别名存在)

nvm use [<version>]

修改当前Shell的PATH环境变量,切换到指定Node版本;如果省略版本号且当前目录存在.nvmrc,则自动使用该文件中的版本。
可选参数需紧跟在nvm use之后:

  • --silent:静默模式,不输出任何stdout/stderr内容
  • --lts:自动使用LTS别名lts/*对应的版本(如果该别名存在)
  • --lts=<LTS name>:自动使用指定LTS分支别名对应的版本(如果该别名存在)
  • --save:将当前切换的版本写入.nvmrc文件

nvm exec [<version>] [<command>]

在指定Node版本的环境下运行指定命令;如果省略版本号且当前目录存在.nvmrc,则自动使用该文件中的版本。
可选参数需紧跟在nvm exec之后:

  • --silent:静默模式,不输出任何内容
  • --lts:自动使用LTS别名lts/*对应的版本(如果该别名存在)
  • --lts=<LTS name>:自动使用指定LTS分支别名对应的版本(如果该别名存在)

nvm run [<version>] [<args>]

在指定Node版本环境下运行node命令,并传入指定参数;如果省略版本号且当前目录存在.nvmrc,则自动使用该文件中的版本。
可选参数需紧跟在nvm run之后:

  • --silent:静默模式,不输出任何内容
  • --lts:自动使用LTS别名lts/*对应的版本(如果该别名存在)
  • --lts=<LTS name>:自动使用指定LTS分支别名对应的版本(如果该别名存在)

nvm current

显示当前Shell环境中激活的Node版本

nvm ls [<version>]

列出本地已安装的所有Node版本;如果指定版本号,则只列出匹配的版本

  • --no-colors:禁用彩色输出
  • --no-alias:不显示所有别名对应的版本信息

nvm ls-remote [<version>]

列出远程仓库中可安装的所有Node版本;如果指定版本号,则只列出匹配的版本

  • --lts:仅显示LTS版本
  • --lts=<LTS name>:仅显示指定LTS分支下的版本
  • --no-colors:禁用彩色输出

nvm version <version>

将指定的版本描述(比如别名、版本号片段)解析为单个本地已安装的具体版本号

nvm version-remote <version>

将指定的版本描述(比如别名、版本号片段)解析为单个远程仓库中的具体版本号

  • --lts:仅从LTS版本中筛选匹配项
  • --lts=<LTS name>:仅从指定LTS分支的版本中筛选匹配项

nvm deactivate

撤销nvm对当前Shell环境变量的所有修改

  • --silent:静默模式,不输出任何内容

nvm alias [<pattern>]

显示所有以指定<pattern>开头的别名

  • --no-colors:禁用彩色输出

nvm alias <name> <version>

创建/修改别名<name>,使其指向指定的<version>

nvm unalias <name>

删除指定的别名<name>

nvm install-latest-npm

尝试将当前激活的Node版本对应的npm升级到最新可用的兼容版本

nvm reinstall-packages <version>

将指定版本中安装的全局npm包,重新安装到当前激活的Node版本中

nvm unload

从当前Shell环境中完全卸载nvm(恢复到未安装nvm前的状态)

nvm which [current | <version>]

显示指定版本(或当前激活版本)的Node可执行文件路径;如果省略版本号且当前目录存在.nvmrc,则自动使用该文件中的版本

  • --silent:当指定版本不存在时,静默不输出错误信息

我的具体问题补充

  1. 我在终端直接输入nvm能正常弹出上面这些帮助,但用which nvm或者whereis nvm都找不到它的安装路径,想知道nvm到底装在哪?
  2. 我写了个简单的Shell脚本,里面用了nvm use 18这样的命令,但执行脚本时却提示nvm: command not found,这该怎么解决才能让脚本识别nvm命令呀?

麻烦各位大佬给点实际的解决思路,感谢感谢!🙏

火山引擎 最新活动