先说解决方法
找到VSCode的快捷方式:左下角windows,字母检索V,右键更多 -- 选择打开文件位置
选择快捷方式,右键
属性
在后侧追加
--extensions-dir "你的路径"
设置完以上,所有通过该快捷方式打开的文件(点击图标打开,拖拽项目打开,右键在上下文菜单中打开目标文件),扩展的目录都会指向你所设置的目录,再打开的窗口中下载的扩展也都将下载到指定的目录。
Why?
下面简答介绍下原理
Code.exe 文件实际上windows的指令集,就是我们所用的 cmd 中的命令,当你点击快捷方式的时候指向的时 Code.exe,此时运行 Code.exe,其实就是在执行 code.cmd 命令,没错就是配置在环境变量的那个。实际上你所安装的每一软件都会有指定的 .cmd 文件,当你在使用时,会有 n 多指令发出。
下面我们看一下 code.cmd 都可以插入哪些指令
打开命令行执行
code -help
会看到很多可以指令,我们只看与题目有关的中一条
Extensions Management ---直译:扩展管理
--extensions-dir <dir> ---直译:扩展管理者,
Set the root path for extensions. ---设置扩展的根路径
显而易见,翻译也很直白。如果不设置他会放在用户的根路径,软件名\扩展包。
我们在上文快捷方式中插入的 --extensions-dir <dir>,最终会被添加到 code 后边的指令集中,然后执行 code.cmd。
注意:上文已经提及,只能是通过该快捷方式打开的窗口。
第三方工具启动VSCode,避开快捷方式,剑锋直指 code.exe 此时上文设置失效。直冲用户的 root,裂开!
说些题外话
使用过前端框架的都知道 npm 可以配置 .npmrc 淡然 yarn 也有 .yarnrc,两个是 npm.cmd 和 yarn.cmd,的 config 文件,就是每次调用 npm 或者 yarn 时内部的一些配置,如果 code.cmd也提供,那就可以完美解决了,很遗憾 code -help 查看没有找到相关的 config。
说实话微软虽然谦虚,但是不厚道。
谦虚是因为它把这些外部工具叫做 extensions 扩展,而不是 plug-in 插件。不厚道因为知道是扩展居然不让自定义 path。
(简单解释:个人理解扩展,好比雪中送碳 / 众人拾柴,而插件则是锦上添花)
文章就分享到这,如有差误之处还望不吝指出。