nodist 使用笔记
1. nodist 是什么?
nodist 是一个 node 版本管理工具。
2. nodist 可以做什么?
可以帮你管理项目使用的node版本,不必再为了项目使用的 node 版本不同而每次打开项目都去跑命令切换 node 版本了。
3. nodist 的下载地址:https://github.com/nullivex/nodist
4. nodist 的安装使用过程中,本人遇到的【坑】
(1)安装新的node版本,并将其设置为 global 版本时,运行【npm】命令报错。
原因:可能是网络不好,因为 nodist npm xxx 下载 npm 的网址是 https://codeload.github.com/,我们本地没有下载完毕就终止了下载。
解决办法: 静静地等待,或者你可以配置网络代理。
(2)npm 版本不支持 node 版本 (如果需要查看 npm 的最新版本 npm view npm version,查看所有 npm 的版本 npm view npm versions)
原因:nodist npm xxx 更换版本之后npm版本是全局的,也就是说你再更换 node 版本后,npm 版本不会跟着 node 版本更改而更改。
解决办法:nodist xxx 之后 运行一下 nodist npm match,将【 npm 版本】切换到最适合于 更换后的【node】的版本
(3)node 下载慢,不知道如何更改 node 下载地址。
原因:nodist 默认 node 下载地址是 https://nodejs.org/dist 。
解决办法:1. 在 nodist 安装目录下有个 cli.js 文件,编辑该文件,大概在 第 72行左右的样子,将
var distUrl = process.env.NODIST_NODE_MIRROR || 'https://nodejs.org/dist';
var iojsDistUrl = process.env.NODIST_IOJS_MIRROR || 'https://iojs.org/dist';
改成
· var distUrl = 'https://npm.taobao.org/mirrors/node
';
var distUrl = 'https://npm.taobao.org/mirrors/iojs
';
2.在全局变量里面添加
·
NODIST_NODE_MIRROR 值:https://npm.taobao.org/mirrors/node
NODIST_IOJS_MIRROR 值:https://npm.taobao.org/mirrors/iojs
5. 注意点:
(1)任何 node 版本下安装的全局模块都是全局的,不会因为切换node版本就需要重新安装(和 nvm-windows相比这是非常好的一个地方)。
(2)npm 也是全局的,设置了之后不会跟随 node 版本的切换而自动匹配相应的的 npm 版本。上面提到过一句。(但是不论你在 哪一个 node 版本下运行了 nodist npm match之后,各个node版本的npm版本都会匹配成最匹配的版本)
原因(我猜测): npm版本会进行判定,首先判定指定了全局npm版本没有,也就是运行了 nodist npm xxx 没有,如果运行了,就相当于指定了全局 npm 版本,那么 npm的版本不会随着node版本切换而改变。
如果没有指定全局npm版本,就会找该版本最匹配的 npm 版本(如果已经下载,否则 Couldn't find any matching version) 。
(3)npm 任何一个版本下设置的变量,比如 registry,设置了之后就适用于全局,就算是项目的 local 中的 npm 也会被影响,因为它们是使用的同一个配置文件。
(4)全局下的 npm 的版本更改不会使得项目下的 local 中的 npm 的版本跟着变动。(除非 node版本一样时 npm 版本改变 )
6. 如果想要明白 nodist 下有哪些命令可以用,怎么用,用法是什么。可以使用 nodist --help 命令查看。
各位兄弟姐妹们,这就是本人对于 nodist 的使用心得。 有写的不对或者需要改进的地方欢迎留言讨论 ^_^
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通