程序员微机课系列—我的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培训.期待与您交流! ---------- 抽象定义: 抽象就是从多个事物中将共性的,本质的内容抽取出来. 例如:狼 ...
随机推荐
- 你知道 JavaScript 中的 Arguments 对象都有哪些用途吗?
JavaScript 中 Arguments 对象的用途总结. 前言 相信我们很多人在代码开发的过程中都使用到过一个特殊的对象 -- Arguments 对象. 在实际开发中,Arguments 对象 ...
- 解决Openstack Dashboard无法获取实例故障
在部署配置完openstack基础服务以及dashboard后.登录页面发现很多功能都不正常,无法获取实例,也无法获取镜像. 查看日志 [root@openstack-controller-dev ~ ...
- 最全华为鸿蒙 HarmonyOS 开发资料汇总
开发 本示例基于 OpenHarmony 下的 JavaScript UI 框架,进行项目目录解读,JS FA.常用和自定义组件.用户交互.JS 动画的实现,通过本示例可以基本了解和学习到 JavaS ...
- centos7 wget安装jdk
2021-07-151. 环境介绍 操作系统:centos7 jdk版本:jdk1.8.0.211 2. 下载 进入 https://www.oracle.com/java/technologies/ ...
- git01_常用命令
git与github介绍 Git是什么 Git是一个开源的[分布式][版本控制系统],用于敏捷高效地处理任何或小或大的项目 版本控制器 CVS/SVN/Git SVN 客户端/服务器 GIT 客户端/ ...
- Linux 学习路线
前言 这篇文章会一直更新...只是将个人的文章总结归纳到这,不代表最佳学习路线 没有链接的文章后续会补上...还没写的知识点未来用到也会补上...太卷了 常用基础命令 Linux常用命令 - cd命令 ...
- JS001. antd vue遍历setFieldsValue表单键值对无效 ( {} -> new Object() )
问题代码: const tempFieldsValue = this.form.getFieldsValue() Object.keys(tempFieldsValue).map((k) => ...
- Hash值和位运算
一.Hash 1.md5是hash算法,不可逆,还原的是暴力穷举的方式解析的:加盐之后穷举也不能还原: 2.压缩映射会有重复,即哈希冲突: 二.ConcurrentHashMap 1.putIfAbs ...
- input 只可以输入时分秒
在html5的time中,只有时.分,没有秒. 例如<input type="time" name="user_date" /> 属性加上 step ...
- SparkPi的编程计算
Pi的计算方式有很多,本文主要是通过Spark在概论统计的方法对Pi进行求解: 算法说明: 在边长为R的正方形中,其面积为R^2,而其内接圆的面积为pi * R^2 /4 ,圆的面积与正方形的面积比为 ...