如何让PowerShell/CMD中npm list输出与VS Code一致?
解决终端npm列表输出字符不一致的问题
核心原因
npm会根据终端的Unicode盒形字符支持状态自动切换输出样式:VS Code终端默认启用了该支持,所以输出美观的线条字符;而外部PowerShell或cmd默认配置下未正确开启支持,导致回退到ASCII字符(+--、\--`)。
具体解决步骤
1. 配置PowerShell启用Unicode支持
在PowerShell中执行以下命令,永久开启UTF-8编码与盒形字符支持:
# 临时设置控制台输出编码为UTF-8 [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new() # 永久配置PowerShell默认使用UTF-8编码输出 Set-ItemProperty -Path HKCU:\Console\ -Name CodePage -Value 65001
执行完成后重启PowerShell,再运行npm -g list --depth=0即可看到VS Code同款输出。
2. 配置cmd.exe启用Unicode支持
- 临时生效:打开cmd.exe后执行命令:
chcp 65001 - 永久生效:右键点击cmd窗口标题栏 → 选择「属性」→ 切换到「选项」标签 → 找到「当前代码页」,选择
65001 (UTF-8)并保存设置,重启cmd后生效。
3. 强制npm使用盒形字符输出
如果终端配置调整无效,可直接强制npm输出Unicode样式:
npm config set unicode true
(你已确认终端字体一致,无需额外调整字体)
内容的提问来源于stack exchange,提问作者Macs Gasante
相关产品推荐
相关产品推荐

