多语言开发环境规划方案
1. 环境部署分配
Windows 宿主机
- Node.js/Vue 开发环境
- 原因:前端工具链 Windows 支持完善
- 版本管理:nvm-windows
- 存储位置:
D:\DevSpace\web
WSL2
- Python 开发环境
- 原因:包管理系统更完整,Linux 原生性能更好
- 版本管理:pyenv
- 存储位置:
~/projects/python(WSL 文件系统内)
- Go 开发环境
- 原因:在 Linux 环境下构建更快
- 版本管理:gvm
- 存储位置:
~/projects/go(WSL 文件系统内)
- Java 开发环境
- 原因:IDE 工具链完整,调试体验最佳
- 版本管理:使用 SDKMAN!
- 存储位置:
~/projects/java
- C/C++/Rust 工具链
- 原因:Linux 下编译工具链更完整
- 存储位置:
~/projects/native(WSL 文件系统内)
Docker 容器
- PHP 开发环境
- 原因:版本切换频繁,依赖隔离需求高
- 版本管理:Docker images
- 存储位置:
~/projects/php
2. 目录结构
D:\DevSpace
├── web
│ ├── vue-projects
│ └── node-projects
└── tools # 工具和配置文件
WSL2 ~/projects/
├── python
├── go
├── java
├── php
├── native
└── tools
3. 环境配置
Windows 配置
cache=D:\DevSpace\tools\npm-cache
prefix=D:\DevSpace\tools\npm-global
WSL2配置
1. Python环境
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
export PIP_CACHE_DIR="$HOME/.cache/pip"
1. Go环境
export GOPATH="$HOME/projects/go"
export GO111MODULE=on
export GOPROXY=https://goproxy.cn,direct
1. Java Maven仓库
<settings>
<localRepository>/data/maven_repository</localRepository>
</settings>
1. Rust环境
export CARGO_HOME="$HOME/.cargo"
export RUSTUP_HOME="$HOME/.rustup"
Docker 配置
version: '3.8'
services:
php74:
image: php:7.4-fpm
volumes:
- ./src:/var/www/html
working_dir: /var/www/html
4. 性能优化配置
[wsl2]
memory=8GB
processors=4
localhostForwarding=true
5. 空间管理脚本
1. 清理npm缓存
npm cache clean --force
1. 清理Docker资源
docker system prune -af --volumes
#!/bin/bash
1. 清理pip缓存
pip cache purge
1. 清理Maven仓库
Get-ChildItem /data/maven_repository -Recurse -Include *lastUpdated* | Remove-Item
1. 清理Go模块缓存
go clean -modcache
1. 清理Rust缓存
cargo cache -a
以上配置可以确保:
- 避免 WSL 与 Windows 之间的文件系统跨越访问
- 各语言环境相对独立且易于维护
- 依赖包统一管理且易于清理
- 开发工具链运行在最适合的环境中
延伸阅读
- 开发环境(asdf+docker)——另一套基于 Docker 的开发环境方案
asdf 系列