.nvmrc文件是什么?.nvmrc文件怎么使用?

10,027次阅读
没有评论

共计 1981 个字符,预计需要花费 5 分钟才能阅读完成。

.nvmrc 为项目指定使用指定版本的 node.js

    • 从多版本 node.js 管理器 nvm 说起
    • .nvmrc
      • .nvmrc 文件是什么?
      • .nvmrc 文件怎么使用?
        • 创建 .nvmrc 文件
        • 在有 .nvmrc 文件的目录或者子目录执行 nvm
    • 深度集成到 shell 终端
      • zsh 终端根据 .nvmrc 文件自动执行切换 node 版本

从多版本 node.js 管理器 nvm 说起

在我们开发 vue,或者 react 的时候,项目需要用到指定版本的 node.js,这时我们可以使用 nvm 去管理多个版本的 node.js。通过终端执行 nvm install, nvm use 命令去安装和切换版本。

但是每次都要手动去执行切换很麻烦,特别是在多个项目之间来回切换开发的时候,容易忘记切换 node 版本或切到错误版本导致项目跑了一半启动不了。这就需要一个管理项目 node.js 版本的方法,自动切换 node.js 版本的方法,.nvmrc 该上场了!

.nvmrc

.nvmrc 文件是什么?

通过上述说明大概知道.nvmrc 文件,就是用来管理我们项目使用的 node.js 版本的。
这个文件非常简单:只有一个 nvm 可识别的 node.js 版本的文本。比如:v18.12.0

.nvmrc 文件怎么使用?

你可以创建一个 .nvmrc 文件,文件内容是一个 node 版本的数字或者其它 nvm 可以理解的文本;详情可以在终端输入 nvm --help 查看。

有了.nvmrc 文件后,我们在终端没有指定版本时执行 nvm use, nvm install, nvm exec, nvm run, 和 nvm which 命令时会使用 .nvmrc 文件指定的版本。

创建 .nvmrc 文件

举个例子,在当前目录下,让 nvm 指定 18.12 的最新发布版本,最新发布的 LTS 版本,最新发布的 node 版本。
使用 echo 字符串 > 指向 文件名 可以把字符串填入指向的文件中并创建文件。使用以下命令会创建 .nvmrc 文件

$ echo "18.12" > .nvmrc

$ echo "lts/*" > .nvmrc 

$ echo "node" > .nvmrc 
在有 .nvmrc 文件的目录或者子目录执行 nvm

然后当你执行 nvm:

$ nvm use

Found '/code/react/todo-list/.nvmrc' with version v18.12.0>
Now using node v18.12.0 (npm v6.14.18)

nvm use 等命令将从当前目录向上遍历目录结构寻找文件.nvmrc。也就是说,在带有 .nvmrc 的目录的任何子目录中运行 nvm use 等命令,.nvmrc 都会起作用。

.nvmrc 文件必须是一个 符合 nvm –help 所列出的,版本号后跟换行符。不允许尾随空格,并且需要尾随换行符。

像下图一样,v14.21.3 后面没有空格,直接回车换行。
.nvmrc 文件是什么?.nvmrc 文件怎么使用?

深度集成到 shell 终端

您可以使用 avn 它来深度集成到您的 shell 中,并在更改目录时自动调用 nvm。

如果您更喜欢轻量级的解决方案,可以使用下面的方法。

zsh 终端根据 .nvmrc 文件自动执行切换 node 版本

$HOME/.zshrc中添加以下代码后。每当进入一个包含 .nvmrc 文件的目录时自动调用 nvm use,
.nvmrc 文件的字符串告诉 nvm 使用哪个版本的 node.js


$ cd
$ vi .zshrc

这是需要写入到 .zshrc 的代码:



autoload -U add-zsh-hook
load-nvmrc() {
  local nvmrc_path="$(nvm_find_nvmrc)"

  if [ -n "$nvmrc_path" ]; then
    local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")

    if [ "$nvmrc_node_version" = "N/A" ]; then
      nvm install
    elif [ "$nvmrc_node_version" != "$(nvm version)" ]; then
      nvm use
    fi
  elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(nvm version)" != "$(nvm version default)" ]; then
    echo "Reverting to nvm default version"
    nvm use default
  fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

编辑好 .zshrc 文件后,执行 source .zshrc 使命令生效

$ source ~/.zshrc

在有.nvmrc 文件项目,打开 vscode 的集成终端,会发现已经自动运行 nvm use,命令行有相应的输出。

.nvmrc 文件是什么?.nvmrc 文件怎么使用?

其他 shell,如 bash, fish 请查看官方说明
https://github.com/nvm-sh/nvm#deeper-shell-integration

原文地址: .nvmrc 文件是什么?.nvmrc 文件怎么使用?

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-10-07发表,共计1981字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)