程序员微机课系列—我的nodejs多版本管理方法
nodejs的多版本配置对于我来说一直都是一个较为头疼的事情。本人的开发工作会涉及electron以及前端,对于工作中使用的npm包(点名node-sqlite3和node-sass)在某些情况下,会使用node-gyp进行原生C/C++模块的编译,此时,nodejs的版本就尤为重要,但是本人又不太愿意使用nvm进行管理,所以总结了一套nodejs多版本管理的指南。
非安装二进制包下载
为了实现基本的多版本,nodejs二进制包我们都下载非安装版本,而不是安装版:
下载地址:Download | Node.js (nodejs.org)
- node-v12.22.5-win-x64.zip
- node-v14.17.5-win-x64.zip
本地目录配置
下载好后,我们选取一个我们经常安装软件的目录,譬如在本人的机器上,我使用D:\Programes\来存放我所有的软件。在软件存放目录下创建名为nodejs的文件夹,并且将上述的两个版本的nodejs都按照其版本名称解压:
D:\Programs\nodejs
|-- node-v12.22.5-win-x64
|-- node.exe
|-- ...
|-- node-v14.17.5-win-x64
|-- node.exe
|-- ...
接下来,我们在nodejs文件夹中创建一个文件夹:global_and_cache_files,并在其中创建子目录:
- global_modules:存放node的全局包
- cache_modules:存放npm使用过程的缓存文件
至此,我们有如下的目录结构
D:\Programs\nodejs
|-- node-v12.22.5-win-x64
|-- ...
|-- node-v14.17.5-win-x64
|-- ..
|-- global_and_cache_files
|-- global_modules
|-- cache_modules
npmrc
接下来是老生常谈的npmrc配置(用户目录/.npmrc文件):
# 国内阿里镜像
registry=https://r.npm.taobao.org/
# 设置全局包的存放路径(注意此处的路径和上面创建的路径一致)
prefix=D:\Programs\nodejs\global_and_cache_files\global_modules
# 缓存路径(和上面创建的路径一致)
cache=D:\Programs\nodejs\global_and_cache_files\cache_modules
环境变量设置
对于环境变量,最基本的就是将node.exe添加到环境变量中:
这里我分了两步:
- 设置
NODE_JS_HOME环境变量为上面的某一版本nodejs的路径:D:\Programs\nodejs\node-v14.17.5-win-x64

- 将
NODE_JS_HOME环境变量加到Path中。此外,为了之后能够在命令行中使用全局安装的npm包,我们也把对应的全局包安装路径设置到环境变量中:D:\Programs\nodejs\node_global_modules

切换环境
在上述的配置下,环境的切换也比较方便。只需要修改对应的NODE_JS_HOME指向的不同版本nodejs的安装路径即可。
环境切换注意点
由于缓存和全局安装的npm包会和安装时候的nodejs版本关联,在切换环境后请对全局包进行重新的安装工作。
其他的管理方案
实际上,nodejs多版本管理方案还有,只不过这些都需要安装额外的东西,个人不是很喜欢。
程序员微机课系列—我的nodejs多版本管理方法的更多相关文章
- 程序员的智囊库系列之2----网站框架(framework)
程序员的智囊库系列之2--网站框架(framework) 这是程序员的智囊库系列的第二篇文章.上一篇文章讲了服务器与运维相关的工具,这篇文章我们将介绍几个搭建网站的框架: django express ...
- Web程序员开发App系列 - 开发我的第一个App,源码下载
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...
- Web程序员开发App系列 - 调试Android和IOS手机代码(补图)
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...
- Web程序员开发App系列 - 申请苹果开发者账号
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...
- Web程序员开发App系列 - 认识HBuilder
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...
- 程序员的智囊库系列之3--分布式文件系统(Distributed file systems)
程序员的智囊库系列之3--分布式文件系统(Distributed file systems) 这是程序员的智囊库系列的第三篇文章.上一篇文章本来打算介绍几个搭建网站的框架,但由于这部分的内容较多,还需 ...
- 程序员的经济学系列——你不可不知的生存智慧——第一篇:小X是要成为IT精英的男人!
21世纪,不懂经济学就是耍流氓!如何才能生活得更好?作为程序员你一定也思考过这个问题.今天我们就来从经济学中寻找这问题的答案吧! 一·PPF与机会成本 1.PPF综述 首先为大家介绍第一个最简单的经济 ...
- 程序员的脑袋系列---利用ffmpeg命令提取音频
今日各大播放器的版权控制越来越严格.导致很多歌曲无法听,但是MV却可以听.这样很蛋疼有木有? 然而,我们可以利用ffmpeg工具提取MV的音频,比如做成MP3格式,这样就可以听了.--哈哈(邪恶地笑) ...
- 黑马程序员——JAVA基础之抽象和接口 , 模版方法设计模式
------- android培训.java培训.期待与您交流! ---------- 抽象定义: 抽象就是从多个事物中将共性的,本质的内容抽取出来. 例如:狼 ...
随机推荐
- JDBC基础篇(MYSQL)——通过JDBC连接数据库的三种方式
package day01_jdbc; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManage ...
- MongoDB学习笔记一(MongoDB介绍 + 基本指令 + 查询语句)
什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为WEB应用提供可扩 ...
- Linux系统的内核编译
<1>给虚拟机分配2048M内存 <2>配置高可用yum源 <3>下载软件 <1>安装内核源码包 根据依赖性提示,安装对应的包 下载并安装软件包(3个) ...
- Java 学习:对象和类
对象和类 从认识的角度考虑是先有对象后有类.对象,是具体的事物.类,是抽象的,是对对象的抽象. 从代码运行角度考虑是先有类后又对象.类是对象的模板. 对象:对象是类的一个实例,有状态和行为. 类:类是 ...
- JS 根据文件路径获取名字和后缀名
var fileName = this.from.doc.substring(this.from.doc.lastIndexOf('/')+1); //文件名 var extNam ...
- OpenCV 之 透视 n 点问题
透视 n 点问题,源自相机标定,是计算机视觉的经典问题,广泛应用在机器人定位.SLAM.AR/VR.摄影测量等领域 1 PnP 问题 1.1 定义 已知:相机的内参和畸变系数:世界坐标系中,n 个 ...
- Stream流思想和常用方法
一.IO流用于读写:Stream流用于处理数组和集合数据: 1.传统集合遍历: 2.使用Stream流的方式过滤: 其中,链式编程(返回值就是对象自己)中,filter使用的是Predicate函数式 ...
- 使用easyui进行上左右布局
在后台管理系统开发的过程中,上左右的布局是最常见的页面布局方式,现在我们来看看使用easyui这个jquery前端框架如何快速搭建一个可用的页面框架. 1.在页面中引入easyui所需的文件 1 &l ...
- java版gRPC实战之三:服务端流
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- java短信群发项目:
编写一个项目, 1. 以下手机号码段,添加到Map集合当中 2. 从控制台输入要发送信息的短信号码,如果要发送多个,请用英文逗号隔开,输入短信内容 3. 编写一个短信发送类,号码发送前,先判断号码是否 ...