垫片 & PATH >= 0.5.0
vfox 是通过直接操作PATH来进行版本管理的, 但是有些IDE并不会读取PATH环境变量, 所以我们需要一些额外的操作来让IDE读取到vfox的版本。
Shims 目录
该目录用于存放所有全局SDK垫片文件 。
位置: $HOME/.version-fox/shims
shell
$ vfox use -g nodejs@14.17.0
$ ~/.version-fox/shims/node -v
v14.17.0注意
vfox 只会处理插件指定目录下的所有二进制文件, 如果你通过其他安装工具(npm)安装二进制文件, shims目录下是不会包含的。
以nodejs为例:
shell
$ vfox use -g nodejs@14.17.0
$ npm install -g prettier@3.1.0
$ ~/.version-fox/shims/node -v
v14.17.0
$ ~/.version-fox/shims/prettier -v # 文件不存在!!!!并不打算提供重建
shim的能力。 请使用current软链。
垫片实现
- Windows:
.exe和.shim文件 - Unix: 软链接
以nodejs为例:
- Windows:
node.exe和node.shim - Unix:
.version-fox/shims/node->.version-fox/cache/nodejs/v-14.17.0/nodejs-14.17.0/bin/node
current 软链接
vfox 除了会将全局SDK垫片放置在shims目录下, 还会在$HOME/.version-fox/cache/<sdk>/目录下创建一个软链接current, 指向对应的SDK。
位置: $HOME/.version-fox/cache/<sdk>/current
以Nodejs为例:
shell
$ vfox use -g nodejs@14.17.0
$ npm install -g prettier@3.1.0
$ ~/.version-fox/cache/nodejs/current/node -v
v14.17.0
$ ~/.version-fox/cache/nodejs/current/prettier -v # 可以了!!!
3.1.0TIP
vfox对于版本管理的核心也是通过current软链接来实现的.
当你在命令行中进行切换时, 实际上会创建一个软链接指向对应的SDK版本, 并将current软链接存放在当前Shell的临时目录下, 以及配置到PATH中, 从而实现版本的切换。
