这次运行同学给我们的另一个vue项目的前端代码,配置环境,安装nodeJs和node-gpy,安装过后运行npm install
搭建项目,报错,首先报错error gyp ERR! stack Error: Could not find any Visual Studio installation to use
,未安装Visual Studio,按照 大佬的做法,在官网上下载了Visual Studio Build Tools
,并安装了C++ 工具,最新版为2022版本,重新执行npm install
问题
仍然报错unknown version "undefined" found at "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTool
,网上搜了下,发现是因为npm版本低了,识别不了最新的2022版本的 VS Build Tools,但是自己在命令行 node-gpy -v
已经是最新版本,npm也是新的,单纯是更新npm update node-gyp -g
或者$ npm install node-gyp@latest
并没有效果
原因
又仔细观察,发现报错中显示的npm版本并不和我在命令行中查到的npm版本一致,就以上思路,终于找到https://github.com/nodejs/node-gyp/blob/main/docs/Updating-npm-bundled-node-gyp.md ,发现果然node-gpy会使用内嵌的npm,而这个内嵌的版本太低了,单纯外部升级命令并没有效果。
解决
windows的解决方法:(其他解决方法可以进链接看文档说明)
管理员身份执行,进入nodeJs的安装位置
$ cd "C:\Program Files\nodejs"
如果外部npm是7或者8(这个可以用npm -v 查看 ):
cd node_modules\npm\node_modules\@npmcli\run-script
小于7
cd node_modules\npm\node_modules\npm-lifecycle
在这两个文件夹下再运行更新命令
$ npm install node-gyp@latest