Windows 个人开发环境初始化

太阳作者太阳
原创内容采用 CC-4.0 协议发布,转载请注明出处
Windows初始化环境

这份清单面向个人开发机,按需执行并逐步确认结果。下面的路径保留当时的 D 盘布局;换盘时要同时修改 npm 配置、环境变量和 PATH。

安装工具

winget list
winget install --id Git.Git
winget install --id Microsoft.VisualStudioCode
winget install --id Atlassian.Sourcetree
# 按需升级指定应用;不要把全量升级当作初始化必需步骤
winget upgrade --id Git.Git

Microsoft 的 winget upgrade 文档说明 winget upgrade --all 会尝试升级所有可识别应用;清单较大时先用 winget list 核对包名。

Node、Android SDK 和 Gradle

我把 npm 全局包和缓存放到 D:\javascript\npm,Android SDK 和 Gradle 数据放到 D:\android。先安装项目要求的 Node.js 版本,并通过 Android Studio 的 SDK Manager 安装 SDK;设置环境变量本身不会安装这些工具。

当时是在 PowerShell 会话里这样设置 Android 相关变量的:

$Env:ANDROID_SDK_HOME="D:\android\.android"
$Env:ANDROID_SDK_ROOT="D:\android\sdk"
$Env:GRADLE_USER_HOME="D:\android\.gradle"

这段只影响当前进程及其子进程,不会自动持久保存。ANDROID_SDK_HOME 还有目录层级上的历史差异,不能按名字把它当作 SDK 目录。下面改为持久设置当前工具使用的 ANDROID_HOME,npm 和 Gradle 继续沿用原目录:

$npmPrefix = 'D:\javascript\npm\prefix'
npm config set prefix $npmPrefix
npm config set cache 'D:\javascript\npm\cache'
[Environment]::SetEnvironmentVariable('ANDROID_HOME', 'D:\android\sdk', 'User')
[Environment]::SetEnvironmentVariable('GRADLE_USER_HOME', 'D:\android\.gradle', 'User')

Android 官方环境变量说明推荐 ANDROID_HOMEANDROID_SDK_ROOT 已废弃,若旧工具仍读取它,应让两个变量保持同一路径并逐步迁移。ANDROID_SDK_HOME 是旧工具用于用户配置目录的变量,含义与 SDK 安装目录不同,不能拿它替代 ANDROID_HOMEAndroid 环境变量文档说明了这些边界。将 npm prefix 加入当前用户 PATH 时保留已有值并避免重复,打开新终端验证:

$userPath = [string][Environment]::GetEnvironmentVariable('Path', 'User')
if (($userPath -split ';') -notcontains $npmPrefix) {
    [Environment]::SetEnvironmentVariable('Path', (($userPath.TrimEnd(';') + ';' + $npmPrefix).Trim(';')), 'User')
}

关闭并重新打开终端后执行,确认新进程读取了持久环境变量:

Get-Command node, npm, git
Get-ChildItem Env:ANDROID_HOME
npm config get prefix

历史系统调整

旧脚本中的混合 GPU 注册表、RDP 端口和 Defender 组策略会改变安全边界或远程连接行为,保留为原始记录,不作为默认步骤。

当时记录的具体位置只有这些操作线索,没有记录执行后的结果:

# 混合 GPU:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0001
# EnableMsHybrid = 1

# RDP:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp -> PortNumber

# Defender:组策略 -> Windows 组件 -> Windows Defender防病毒程序 -> [已启用]关闭

这些设置会改变系统安全策略或远程入口,只有明确的硬件或运维场景才考虑,并先导出当前策略和注册表值。