前言
手里负责了多个项目,有些项目对 node 版本做了强绑定,这样依赖就需要使用 nvm 代理多个 node 版本,避免对项目进行破坏性的改动。
然而,在使用 nvm 的过程中会遇到一些问题:
1.全局依赖频繁安装
2.全局缓存越来越大
3.全局依赖配置重复操作,到最后都不知道哪个是哪个了
4…
问题与思路
其实问题已经暴露了,所以需要解决的就是让 nvm 代理的所有 node 版本共用一套 全局依赖和全局缓存空间。这样一来,在切换 node 版本的时候就不需要频繁的重新安装 全局依赖 了,而且配置也只需要配置一次。
要达到这个效果,不可避免的需要了解一下 node 的安装过长,并且要了解 nvm 是如何实现多版本管理的。
我个人是不太喜欢去看原理性的东西的,只是通过安装结果去猜测了一下这个过程。
首先,node 的安装会做如下几件事情:
1.在安装路径下生成一个 nodejs 的文件夹,并将 node 相关的安装依赖放在这个路径下,而且 npm 的可执行文件也在这里。
2.配置环境变量,将 nodejs 作为指向地址,这样 npm 放在 nodejs 下,就不需要配置了。
3.在 npm 安装全局依赖的时候,会把 可执行文件 都放在 nodejs 下,可以被 winshell 读取到。
如上就是我理解的 node 安装结果以及 为什么 npm 通过 global 命令安装的依赖可以在 cmd 中执行的一点认知,同时,npm 配置里面有这么两个配置 prefix
和 cache
,这两个就是