当前位置:首页 » 《我的小黑屋》 » 正文

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

26 人参与  2024年04月22日 14:14  分类 : 《我的小黑屋》  评论

点击全文阅读


.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# 设置最新LTS版本$ 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文件必须是一个 <version> 符合 nvm --help 所列出的,版本号后跟换行符。不允许尾随空格,并且需要尾随换行符。

像下图一样,v14.21.3后面没有空格,直接回车换行。
.nvmrc示例

深度集成到shell终端

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

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

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

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

# 打开 home 目录,并编辑 .zshrc 文件$ cd$ vi .zshrc

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

# 这一段代码复制到 .zshrc 文件中# place this after nvm initialization!autoload -U add-zsh-hookload-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-nvmrcload-nvmrc

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

$ source ~/.zshrc

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

在这里插入图片描述

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


点击全文阅读


本文链接:http://zhangshiyu.com/post/98672.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 万物复苏,末世来临热门小说苏愉薛遇(万物复苏,末世来临热门小说)全文免费阅读无弹窗大结局_(苏愉薛遇免费阅读全文大结局)最新章节列表_笔趣阁(苏愉薛遇) -
  • 军婚撩人:八零娇妻火辣辣最新热门小说冯晚禾薛战城全文免费阅读无弹窗大结局_(冯晚禾薛战城)冯晚禾薛战城最新章节列表笔趣阁(军婚撩人:八零娇妻火辣辣最新热门小说) -
  • 顾凡任盈盈《快穿之扫地僧在武林杀疯了全集》全文免费阅读无弹窗大结局_(顾凡任盈盈)最新章节免费在线阅读 -
  • 快穿之扫地僧在武林杀疯了完结版(顾凡任盈盈)全文免费阅读无弹窗大结局_(快穿之扫地僧在武林杀疯了完结版小说免费阅读)最新章节列表_笔趣阁(快穿之扫地僧在武林杀疯了完结版) -
  • 免费完结版小说回家过年,我把侄子送进了少管所_回家过年,我把侄子送进了少管所(林晓孟倩林浩)免费小说全本_全本免费完结小说回家过年,我把侄子送进了少管所
  • 书荒宝藏文《简星星江桁》简星星江桁(小说全文阅读无弹窗)全文免费阅读
  • 《江雨柔苏宸》已完结(江雨柔苏宸)热门小说完整版)全文阅读笔趣阁
  • 回家过年,我把侄子送进了少管所(林晓孟倩林浩)阅读免费小说_全本免费小说阅读回家过年,我把侄子送进了少管所(林晓孟倩林浩)最新更新
  • 最新免费小说除夕夜大伯心梗,我替婆婆送花圈油爱芳瑶瑶_除夕夜大伯心梗,我替婆婆送花圈(油爱芳瑶瑶)热门小说推荐
  • 搬空钱财:下乡的娇知青她军婚了全集姜温婉周云霆(搬空钱财:下乡的娇知青她军婚了全集)全文免费阅读无弹窗大结局_(姜温婉周云霆免费阅读全文大结局)最新章节列表_笔趣阁(姜温婉周云霆) -
  • 情深几许再难圆热门小说免费(陈墨燃沈心宁)全文免费阅读无弹窗大结局_(情深几许再难圆热门小说小说免费阅读)最新章节列表_笔趣阁(情深几许再难圆热门小说) -
  • 伽蓝如梦情如尘完结版阅读(林清规梵清)全文免费阅读无弹窗大结局_(伽蓝如梦情如尘完结版阅读)林清规梵清最新章节列表_笔趣阁(伽蓝如梦情如尘完结版阅读) -

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1