Windos 环境下动态切换 NodeJs 版本

您所在的位置:网站首页 arch安装chrome Windos 环境下动态切换 NodeJs 版本

Windos 环境下动态切换 NodeJs 版本

2022-12-12 04:48| 来源: 网络整理| 查看: 265

Windos 环境下动态切换 NodeJs 版本 前言步骤.1 系统环境变量.2 修改.npmrc3.文件夹结构.4 cmd 脚本效果 结束

前言 在工作与学习的过程中需要安装不同版本的 node,来回安装很不方便,就有了切换NodeJs版本的需求,因此从网上借鉴安装多个NodeJs 的方法,有感而发,设计了一个改良的方案。 涉及操作: - 系统环境变量 - cmd 命令 - .npmrc 配置文件 - 文件结构编排 步骤 .1 系统环境变量

主要涉及这三处,Path变量 有则改,没有则新增 (NODE_HOME、NODE_HOME_GLOBAL 是自定义的,可以自己重命名)

变量描述NODE_HOMENodeJs安装路径(C盘)NODE_HOME_GLOBAL全局可读写路径(非C盘,C盘读写需要权限,所以结构一样,只有盘符不一样)Path可执行文件路径集(暴露可执行命令)

在 Path变量内注册的路径下的可执行命令都可在 cmd 窗口内执行

新增以下两个值

变量 + 路径效果%NODE_HOME%用于能够执行 node、npm 命令,该目录内存在 node、npm 的可执行文件%NODE_HOME_GLOBAL%\node_global用于能够执行 cnpm、pnpm 命令,该目录内存在 cnpm、pnpm 的可执行文件(前置条件是已安装cnpm,pnpm)

在这里插入图片描述

.2 修改.npmrc

.npmrc 文件内是可以引用系统环境变量的, 格式 ${value},这块是动态切换的核心之一。

# 测试: npm i express -g # ${} 获取的是系统环境变量 # 全局路径 prefix=${NODE_HOME_GLOBAL}\node_global # 缓存路径 cache=${NODE_HOME_GLOBAL}\node_cache # npm 仓库地址 home=https://registry.npmmirror.com # cnpm 仓库地址: 淘宝镜像; 全局安装命令: npm install -g cnpm --registry=https://registry.npmmirror.com registry=https://registry.npmmirror.com/ disturl=https://registry.npmmirror.com/dist # pnpm 配置; 全局安装命令: npm i pnpm -g # pnpm全局bin路径 global-bin-dir=${NODE_HOME_GLOBAL}\node_global # pnpm全局安装路径 global-dir=${NODE_HOME_GLOBAL}\node_global\node_modules\pnpm\pnpm-global # # pnpm全局仓库路径(类似 .git 仓库) store-dir=${NODE_HOME_GLOBAL}\node_global\node_modules\pnpm\pnpm-store # pnpm创建pnpm-state.json文件的目录 state-dir=${NODE_HOME_GLOBAL}\node_global\node_modules\pnpm\pnpm-state # pnpm全局缓存路径 cache-dir=${NODE_HOME_GLOBAL}\node_global\node_modules\pnpm\pnpm-cache

在这里插入图片描述

3.文件夹结构

以下两个文件夹是需要自己创建的

D:\Program Files\NodeJs\V14.20.0\node_globalD:\Program Files\NodeJs\V14.20.0\node_cache // 安装路径 C - Program Files - NodeJs // 14版本 NodeJs 安装路径 // 对应系统环境变量 %NODE_HOME%, 变量Path内注册 %NODE_HOME%, // 暴漏该路径下 node.exe, npm.cmd 等可执行命令(比如 node -v, npm -v 等命令). - V14.20.0 // 里面除了安装该版本 NodeJs 时自带的 npm 包等外,不会再写入文件 - node_modules - node.exe - npm.cmd // 16版本 NodeJs 安装路径 - V16.18.0 - ...... 省略,同上结构 // 截止到 node_global、node_cache 这两个节点,都是自己创建的, // 这两个节点内部的文件是自生成的 D - Program Files - NodeJs - V14.20.0 // 全局安装路径, 对应系统环境变量 %NODE_HOME_GLOBAL%, // 变量Path内注册 %NODE_HOME_GLOBAL%, 暴漏该路径下 cnpm.cmd, // pnpm.cmd 等可执行命令 (比如 cnpm -v, pnpm -v 等命令). - node-global // 该目录保存所有通过 -g 参数安装的依赖包 - node_modules // 执行 npm install -g cnpm 生成该文件夹 - cnpm // 执行 npm install -g pnpm 生成该文件夹 - pnpm // 以下4个文件夹是在 .npmrc 内配置指定的(可以不创建,需要时自动创建) - pnpm-cache - pnpm-global - pnpm-state - pnpm-store - cnpm.cmd - pnpm.cmd - pnpx.cmd - node_cache - V16.18.0 - ...... 结构同上,省略 .4 cmd 脚本 // 该命令用于更新系统环境变量,KEY 是变量名,VALUE是变量值 call setx /m KEY "VALUE"

对应 NodeJs 版本改成自己的

脚本:NODE_V14.20.0.cmd

@echo off echo Running ...... call setx /m NODE_HOME "C:\Program Files\NodeJs\V14.20.0" echo NODE_HOME_VERSION: ======= V14.20.0 ======= echo Running ...... call setx /m NODE_HOME_GLOBAL "D:\Program Files\NodeJs\V14.20.0" echo NODE_HOME_GLOBAL_VERSION: ======= V14.20.0 ======= pause exit

脚本:NODE_V16.18.0.cmd

@echo off echo Running ...... call setx /m NODE_HOME "C:\Program Files\NodeJs\V16.18.0" echo NODE_HOME_VERSION: ======= V16.18.0 ======= echo Running ...... call setx /m NODE_HOME_GLOBAL "D:\Program Files\NodeJs\V16.18.0" echo NODE_HOME_GLOBAL_VERSION: ======= V16.18.0 ======= pause exit

想用哪个版本就运行哪个,需要以管理员身份运行。

在这里插入图片描述

效果

步骤 1,执行脚本 2,新开窗口查询信息 执行完脚本后重开一个cmd窗口去查询,不然不准确。 在这里插入图片描述

在这里插入图片描述

结束


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3