自从我升级到 WSL 2 以来,我的项目(位于本地 NTFS 驱动器上)的构建都是非常慢。例如,如果我从 Windows 构建一个项目,则需要 20-30 秒的构建时间,而从 WSL2 构建则需要大约 3 分钟。
另一个问题是文件监视功能根本不起作用,所以我无法使用监听文件系统变化的程序。
有人告诉我,解决这个问题的办法就是将我的项目移到 WSL 管理的文件系统中。这是一个好主意,但我无法从我选择的 IDE(IntelliJ IDEA)打开我的项目。
这个问题有简单的解决方案吗?我可以通过常规 IDE 访问存储在 WSL 2 文件系统中的文件吗?
答案1
与全栈开发人员遇到的相同问题我经常发现自己需要在 WSL2 中运行构建过程并更改 Windows 中的文件(即 Affinity publisher、inkscape 等中的 SVG 文件)。
将您的项目文件夹移动到 WSL2 文件系统(ext4 或其他),这样您就可以获得 posix 权限,inotify“监视”文件系统挂钩工作等,并且性能更快。
然后要在 Windows 资源管理器中访问 Linux WSL2 文件系统(即通过任何 Windows 应用程序),请使用路径 \\wsl$\
提示:花 3 秒钟在默认文档、下载等目录中创建一个快捷方式,直接指向您的 \wsl$\projects\folder
答案2
正如所述https://docs.microsoft.com/en-us/windows/wsl/compare-versions,WSL1 在“跨 OS 文件系统性能”方面优于 WSL2。一种解决方案(前提是您不依赖其他 WSL2 特定功能)是使用 将映像的 WSL 版本设置为 1 wsl --set-version <distribution name> <versionNumber=1>
。
关于“常规 IDE 访问 WSL2 文件系统”方面,我无法判断 IntelliJ,但 Visual Studio Code 提供了与 WSL2 镜像的巧妙集成(即在 Windows 上本机运行,同时为 Linux 提供文件系统和 bash 访问)。例如https://code.visualstudio.com/docs/remote/wsl-tutorial或者https://docs.microsoft.com/en-us/windows/wsl/tutorials/wsl-vscode。