MorFans Dev
折腾 - 开发 - 分享

配置和使用 Windows Dev Drive 开发驱动器

配置和使用 Windows Dev Drive 开发驱动器

开启你的 Dev Drive 之旅

Dev Drive(开发驱动器,aka 开发者硬盘)

微软在 Windows 11 中推出了一项革命性(旧活新整)的新功能——Dev Drive。这不仅仅是一个普通的存储卷,它是专为编码和项目管理而设计的,采用了基于写时复制(Copy-on-Write, COW)的 ReFS 文件系统。简单来说,如果你有两份相同的文件,其实只有一份真正存储在磁盘上。另一份只不过是指向第一份的链接。当你对这个链接文件进行修改时,原始数据才会被复制,从而大大加快了重复数据的写入速度。

根据微软官方文档的描述,Dev Drive 主要用途如下:

  • 源代码库和项目文件
  • 软件包缓存
  • 构建输出和中间文件

但是,Dev Drive 不适合用于存储开发工具,如 Visual Studio、MSBuild、.NET SDK 等,这些应当放在主 C:\ 驱动器上。

所以我们在 Dev Drive 上新建如下目录来存放我们的东西:

- packages: 存放缓存
    - go
    - pnpm
    - bun
    - ...
- github.com: 源代码文件目录

来吧,接下来让我们看看如何在 Dev Drive 上折腾各种开发工具的配置——因为显然,没有什么是不能通过增加一些配置来解决的,如果有,那就再加几个环境变量!😉

配置 go 以适配开发驱动器 dev drive

哦,亲爱的 Go,别担心,我们不会让你搬家到 Dev Drive,我们只是搬走了你的活动空间

我们不应该把 Golang 本身安装到 dev Drive 上,所以只需要告诉 Go 把模块缓存放在那即可,要做到这一点,方法很简单:

go env -w GOPATH=H:\packages\go
go env -w GOCACHE=H:\packages\go\go-build

配置 npm、pip、rust、java 以适配开发驱动器 dev drive

这里微软文档中详细写了,我就直接简单说如何配置了。

Npm cache (NodeJS)

添加一个全局环境变量:

npm_config_cache = H:\packages\npm

如果你之前使用过 npm,那么 npm 在你系统里是本来就会有一些缓存的,默认在存储在 %AppData%\npm-cache,把这里面的内容都移动到新位置中。下面的处理方式和这里的一样。

Cargo cache (Rust)

添加一个全局环境变量:

CARGO_HOME = H:\packages\cargo

默认位置在 %USERPROFILE%\.cargo

Pip cache (Python)

添加一个全局环境变量:

PIP_CACHE_DIR = H:\packages\pip

默认位置在 %LocalAppData%\pip\Cache

Java cache

  • 配置 gradle: 添加一个全局环境变量:
GRADLE_USER_HOME = H:\packages\gradle

默认位置在 %USERPROFILE%\.gradle

  • 配置 Maven
MAVEN_OPTS = -Dmaven.repo.local=H:\packages\maven %MAVEN_OPTS%

默认位置在 %USERPROFILE%\.m2

配置 pnpm 以适配开发驱动器 dev drive

创建内容如下的一个全局配置文件:~\.npmrc

store-dir=H:\packages\pnpm\store
cache-dir=H:\packages\pnpm\cache
package-import-method=clone

配置 bun 以适配 dev Drive

谈谈 Bun:这个顽皮的小家伙

现在先让我们来聊聊(吐槽) Bun,这个在开发社区引起不小波澜的新成员。虽然 Bun 承诺提供更快的 JavaScript 工具链体验,但我的天哪,它真的给我们准备了一些“惊喜”:

  • 完全无视我们设置的全局配置文件。
  • 忽略指定的缓存路径,这不是调皮是什么?
  • 在 Windows 上,如果你敢设置代理环境变量,Bun 就跟你玩失联。

所以目前在中国建议晚点再入手 bun ,虽然支持 Windows,真就开局一堆坑,第一次上手就碰到了一些很烦的:

由于现在它不遵守全局配置文件,只好通过设置环境变量(还好它不选择忽视):

BUN_INSTALL_CACHE_DIR=H:\packages\bun\cache
BUN_INSTALL_GLOBAL_DIR=H:\packages\bun\global
BUN_INSTALL_BIN=H:\packages\bun\bin

当然也可以添加上全局配置文件,万一修好了呢:~/.bunfig.toml

Windows的路径解析bug修了的:Fixes #9851 · Pull Request #9886 · oven-sh/bun (github.com)

[install.cache]
# the directory to use for the cache
dir = "H:\\packages\\bun\\cache"

[install]
# where `bun install --global` installs packages
globalDir = "H:\\packages\\bun\\global"
# where globally-installed package bins are linked
globalBinDir = "H:\\packages\\bun\\bin"
# set default registry as a string
registry = "https://registry.npmmirror.com"
赞赏
魔帆博客,版权所有 | 如未注明,均为原创
本站均采用 BY-NC-ND 协议 (署名-非商业性使用-禁止演绎) 进行授权。
转载请注明来自本站文章:配置和使用 Windows Dev Drive 开发驱动器(https://www.morfans.cn/archives/3469)

Super Paxxs

文章作者

一只初中狗,对网站建设和编程非常感兴趣。

发表回复

textsms
account_circle
email

配置和使用 Windows Dev Drive 开发驱动器
探索 Windows 11 中为开发者设计的新功能—Dev Drive。本文详细介绍了如何利用 ReFS 文件系统优化您的开发环境,并有效管理 Go、npm 和 Bun 等工具的缓存。
扫描二维码继续阅读
2024-04-13