Angular 14.2.11升级至15.x.x时遇node-gyp Visual Studio错误求助
Angular 14升级至15时node-gyp Visual Studio检测错误
触发场景
执行以下命令升级Angular版本时触发node-gyp错误:
ng update @angular/core@15 @angular/cli@15
错误日志
gyp 错误!查找VS npm 错误!gyp 错误!查找VS msvs_version已通过命令行或npm配置设置 npm 错误!gyp 错误!查找VS - 正在查找Visual Studio 2022版本 npm 错误!gyp 错误!查找VS 运行在VS命令提示符中,安装路径为: npm 错误!gyp 错误!查找VS "C:\Users\my_name\AppData\Local\Microsoft" npm 错误!gyp 错误!查找VS - 将仅使用此版本 npm 错误!gyp 错误!查找VS 检测到VS2022 (17.6.33815.320) 位于: npm 错误!gyp 错误!查找VS "C:\Program Files\Microsoft Visual Studio\2022\Community" npm 错误!gyp 错误!查找VS - 已找到"Visual Studio C++核心功能" npm 错误!gyp 错误!查找VS - 缺少任何VC++工具集 npm 错误!gyp 错误!查找VS 检测到VS2022 (17.6.33815.320) 位于: npm 错误!gyp 错误!查找VS "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools" npm 错误!gyp 错误!查找VS - 已找到"Visual Studio C++核心功能" npm 错误!gyp 错误!查找VS - 已找到VC++工具集:v143 npm 错误!gyp 错误!查找VS - 已找到Windows SDK:10.0.20348.0 npm 错误!gyp 错误!查找VS - 与当前VS命令提示符不匹配 npm 错误!gyp 错误!查找VS 找不到可使用的Visual Studio 2017或更新版本 npm 错误!gyp 错误!查找VS 正在查找Visual Studio 2015 npm 错误!gyp 错误!查找VS - 在"C:\Program Files (x86)\Microsoft Visual Studio 14.0"找到 npm 错误!gyp 错误!查找VS - 无法在此版本的注册表中找到MSBuild npm 错误!gyp 错误!查找VS 不再查找VS2013,因为它仅支持到Node.js 8 npm 错误!gyp 错误!查找VS msvs_version与当前VS命令提示符不匹配,或该安装无法使用。 npm 错误!gyp 错误!查找VS npm 错误!gyp 错误!查找VS ************************************************************** npm 错误!gyp 错误!查找VS 你需要安装最新版本的Visual Studio, npm 错误!gyp 错误!查找VS 包含"使用C++的桌面开发"工作负载。 npm 错误!gyp 错误!查找VS 更多信息请参考文档: npm 错误!gyp 错误!查找VS https://github.com/nodejs/node-gyp#on-windows npm 错误!gyp 错误!查找VS ************************************************************** npm 错误!gyp 错误!查找VS npm 错误!gyp 错误!配置错误 npm 错误!gyp 错误!堆栈错误:找不到任何可使用的Visual Studio安装 npm 错误!gyp 错误!堆栈 在VisualStudioFinder.fail
环境版本
Node:18.12.1 TypeScript:4.8.2 node-gyp:8.4.1 node-sass:8.0.0 npm:8.19.2
npm配置(npm config list输出)
; "内置"配置来自 C:\Users\my_name\AppData\Roaming\npm\node_modules\npm\npmrc prefix = "C:\\Users\\my_name\\AppData\\Roaming\\npm" ; "全局"配置来自 C:\Users\my_name\AppData\Roaming\npm\etc\npmrc ; msbuild_path = "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Msbuild\\Current\\Bin\\MSBuild.exe" ; 被用户覆盖 python = "C:\\Users\\my_name\\AppData\\Local\\Programs\\Python\\Python39" ; "用户"配置来自 C:\Users\my_name\.npmrc Files\Microsoft = "Visual" msbuild_path = "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Msbuild\\Current\\Bin\\MSBuild.exe" ; node可执行文件路径 = C:\Program Files\nodejs\node.exe ; node版本 = v18.12.1 ; npm本地前缀 = C:\Users\my_name ; npm版本 = 8.19.2 ; 当前工作目录 = C:\Users\my_name ; HOME = C:\Users\my_name ; 运行 `npm config ls -l` 查看所有默认配置。
解决方案
- 使用Visual Studio 2022开发者命令提示符执行升级命令,确保命令行环境与VS安装路径匹配。
- 打开Visual Studio安装器,检查VS2022 Community版本是否安装了完整的VC++工具集:选择"修改",勾选"使用C++的桌面开发"工作负载及下属的MSVC v143生成工具、对应版本的Windows SDK,完成安装后重启命令行。
- 删除用户npm配置中的无效项:编辑
C:\Users\my_name\.npmrc文件,移除Files\Microsoft = "Visual"这一行,保存后重新执行升级命令。 - 手动指定msvs_version配置:执行
npm config set msvs_version 2022,清理npm缓存npm cache clean --force,再重新运行Angular升级命令。
内容的提问来源于stack exchange,提问作者Lucky Ratnawat
相关产品推荐
相关产品推荐

