[学习笔记]在不同项目中切换Node.js版本

news/2024/11/18 6:14:14/文章来源:https://www.cnblogs.com/jevonsflash/p/18374614

@

目录
  • 使用 Node Version Manager (NVM)
    • 安装 NVM
    • 使用 NVM 安装和切换 Node.js 版本
    • 为项目指定 Node.js 版本
  • 使用环境变量指定 Node.js
    • 安装多个版本的 Node.js
    • 设置环境变量
    • 验证配置
    • 使用 npm 脚本切换

在开发中,可能会遇到不同的Vue项目需要不同的Node.js,在开发机上如何快速切换Node的版本呢?

使用 Node Version Manager (NVM)

安装 NVM

在 Linux 或 macOS 上可以通过以下命令安装 NVM:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

在 Windows 上,可以下载并安装 nvm-windows。

使用 NVM 安装和切换 Node.js 版本

安装一个特定版本的 Node.js:

nvm install 16nvm install 22

切换到指定的 Node.js 版本:

nvm use 22

可以通过以下命令检查当前使用的 Node.js 版本:

node -v

为项目指定 Node.js 版本

可以在项目根目录中创建一个 .nvmrc 文件,里面指定该项目需要使用的 Node.js 版本:

16

然后,在进入项目目录时,运行以下命令自动使用 .nvmrc 中指定的版本:

nvm use

使用环境变量指定 Node.js

安装多个版本的 Node.js

下载 Node.js,并在不同目录下安装多个版本。如C:\Program Files\nodejs16C:\Program Files\nodejs22

在这里插入图片描述

在这里插入图片描述

设置环境变量

可以在系统的环境变量配置中手动设置 NODE_HOME

在 Windows 上:

  1. 打开 "系统属性" > "高级系统设置" > "环境变量"。
  2. 在 "系统变量" 或 "用户变量" 中点击 "新建"。
  3. 创建一个新的变量 NODE_HOME,并设置它的值为 Node.js 安装路径。

在这里插入图片描述

  1. 找到 Path 变量,点击 "编辑"。
  2. 添加一个新条目:%NODE_HOME%

在 macOS/Linux 上:

  1. 打开终端,编辑 .bashrc.bash_profile.zshrc 文件:

    export NODE_HOME=/usr/bin/nodejs22 export PATH=$NODE_HOME:$PATH

  2. 保存文件并运行 source ~/.bashrcsource ~/.zshrc 以使更改生效。

通过更改 NODE_HOME 环境变量的路径,实现切换Node.js 的版本。

验证配置

可以通过以下命令验证 Node.js 是否已成功通过 NODE_HOME 变量加载:

node -v

输出应显示所配置的 Node.js 版本:

在这里插入图片描述

cross-env 是一个用于在不同操作系统上设置和使用环境变量的工具,可以用它来切换 NODE_HOME 环境变量,以确保在不同的操作系统上都能正确设置和使用 Node.js 的路径。

package.json 中,可以定义如下的 npm 脚本:

{"scripts": {"set-node16": "cross-env NODE_HOME=C:\\Program Files\\nodejs16","set-node22": "cross-env NODE_HOME=C:\\Program Files\\nodejs22","set-node16-unix": "cross-env NODE_HOME=/usr/bin/nodejs16","set-node22-unix": "cross-env NODE_HOME=/usr/bin/nodejs22"}
}

使用 npm 脚本切换

可以根据操作系统和需要的 Node.js 版本运行相应的脚本:

在 Windows 上:

npm run set-node16

在 Unix 系统上(Linux/Mac):

npm run set-node16-unix

总结:最好是通过第一种方式,因为手动配置环境变量的方式会产生依赖,需要在同事的电脑上手动配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/785560.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HW系列+技战法】内存马的Webshell联合对抗技战法

原创 BeatRex的成长记录一、技战法概述二、Webshell对抗手段2.1 落地文件型Webshell检测与对抗2.1 无文件型内存马检测与对抗2.3 Webshell免杀对抗一、技战法概述 Webshell是黑客经常使用的一种后门,其目的是获得服务器的执行操作权限,常见的Webshell编写语言为ASP、JSP、PHP…

【待做】【ByPass系列】php的webshell绕过方法总结

原创 掌控安全EDU一、php的异或运算 $a="~+d()"^"!{+{}"这个表示了$a=这两个字符串之间进行一个异或运算 运算异或运算符,按二进制位进行异或运算 这里的运算会把符号转化为ascii码,再转化为二进制,再转化为十进制进行运算,再把结果转化为ascii码 通过…

PCA原理与水果成熟状态数据分析实例:Python中PCA-LDA 与卷积神经网络CNN

全文链接:https://tecdat.cn/?p=37450 主成分分析(PCA)作为数据科学中用于可视化和降维的重要工具,在处理具有大量特征的数据集时非常有用。就像我们难以找到时间阅读一本 1000 页的书,而更倾向于 2 到 3 页的总结以抓住整体概貌一样,当数据集中特征过多时,PCA 可以帮…

[题解] permutation

[题解] Permutation解析一眼 DP 或者 组合。70pts 场上推的DP 对于 \((4,2,2)\),先把所有序列枚举出来: \[\begin{split} 1\ \ \ 2\\ 1\ \ \ 3\\ 1\ \ \ 4\\ --\\ 2\ \ \ 3\\ 2\ \ \ 4\\ 3\ \ \ 4 \end{split} \]可以发现,对于分割线上的部分,可以看作 \((3,1,1)\) 的所有序…

金蝶云星空一个业务对象下存在两个扩展时处理方案

问题描述: 出现这种情况一般是在A账套删除了一个扩展,然后又新建了一个扩展,此时登录B账套就会出现这种情况。如果是同一台机器,那未引入对象即是被删除的,未加载对象则是刚扩展的。解决方案: 此时未加载不建议加载,先引入需要删除的对象,然后删除,最后再加载。

信息学奥赛初赛天天练-72-NOIP2016普及组-基础题3-无向图、简单无向图、自环、平行边、顶点的度、握手定理、递归

NOIP 2016 普及组 基础题3 5 以下不是存储设备的是( ) A 光盘 B 磁盘 C 固态硬盘 D 鼠标 6 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照 CapsLock、 字母键 A、字母键 S、字母键 D、字母键 F 的顺序循环按键,即 CapsLock、A、S、D、F、CapsLock、A、S…

JavaSE基础知识分享(十三)

今天继续讲Java中的网络编程的知识!写在前面 今天继续讲Java中的网络编程的知识! 网络编程 概述 计算机网络 计算机网络是将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源…

金箱子

我们设 \(f[i][j]\)表示目前前 \(i\) 个宝箱的期望贡献的 \(j\) 次方。 根据题意可得 $f[i][k]=(f[i-1][1]+a[i])^k \cdot p[i]+(f[i-1][1]+b[i])^k \cdot (1-p[i]) $ 这个式子很难处理,不妨用二项式定理优化 优化后式子则为:\(f[i][k]= \sum _{j=0}^{k} C_{k}^{j} \cdot f[i-…

【PHP安全】demo3:最简单的php代码加密方法

当我们说 "PHP代码加密",我理解的是将 PHP 代码进行混淆或加密,以防止源代码被他人轻易阅读或修改。 这种需求通常用于保护商业秘密或加强代码安全性。常见的工具是使用专业的编译器和加密工具。 然而,请注意,完全保护代码是不可能的,因为最终服务器仍然需要能够…

博客园-awescnb插件-geek皮肤优化--公众号卡片

简介 博客园-awescnb插件-geek皮肤暂不支持配置展示公众号二维码,此文章目的使用手动注入方式自定义实现公众号卡片效果 效果展示公众号卡片动态效果鼠标移入前为公众号指引页 鼠标移入后显示公众号二维码 切换动画为动态反转首页展示实现在博客日历元素blog-calendar前插入自…