NPM在vscode中安装gyp错误,而gyp似乎正在寻找visual studio



我试图在一个项目上运行npm install,我试图在本地运行,但是每次我运行npm install时,我都会遇到错误。幸运的是,这里的一些关于gyp和python的帖子让我至少进步了一点。然而,我并没有多少幸运的进展。

下面你可以找到一些日志,这对我来说表明问题仍然是它试图找到visual studio。然而,我正在运行

npm ERR! Building: C:Program Filesnodejsnode.exe C:UsersuserDocumentsUserusernode_modulesnode-gypbinnode-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp verb cli [
npm ERR! gyp verb cli   'C:\Program Files\nodejs\node.exe',
npm ERR! gyp verb cli   'C:\Users\user\Documents\User\project-site\node_modules\node-gyp\bin\node-gyp.js',
npm ERR! gyp verb cli   'rebuild',
npm ERR! gyp verb cli   '--verbose',
npm ERR! gyp verb cli   '--libsass_ext=',
npm ERR! gyp verb cli   '--libsass_cflags=',
npm ERR! gyp verb cli   '--libsass_ldflags=',
npm ERR! gyp verb cli   '--libsass_library='
npm ERR! gyp verb cli ]
npm ERR! gyp info using node-gyp@7.1.2
npm ERR! gyp info using node@16.13.1 | win32 | x64
npm ERR! gyp verb command rebuild []
npm ERR! gyp verb command clean []
npm ERR! gyp verb clean removing "build" directory
npm ERR! gyp verb command configure []
npm ERR! gyp verb find Python checking Python explicitly set from command line or npm configuration 
npm ERR! gyp verb find Python - "--python=" or "npm config get python" is "C:UsersuserAppDataLocalProgramsPythonPython310python.exe"
npm ERR! gyp verb find Python - executing "C:UsersuserAppDataLocalProgramsPythonPython310python.exe" to get executable path
npm ERR! gyp verb find Python - executable path is "C:UsersuserAppDataLocalProgramsPythonPython310python.exe"
npm ERR! gyp verb find Python - executing "C:UsersuserAppDataLocalProgramsPythonPython310python.exe" to get version
npm ERR! gyp verb find Python - version is "3.10.4"
npm ERR! gyp info find Python using Python version 3.10.4 found at "C:UsersuserAppDataLocalProgramsPythonPython310python.exe"
npm ERR! gyp verb get node dir no --target version specified, falling back to host node version: 16.13.1
npm ERR! gyp verb command install [ '16.13.1' ]
npm ERR! gyp verb install input version string "16.13.1"
npm ERR! gyp verb install installing version: 16.13.1
npm ERR! gyp verb install --ensure was passed, so won't reinstall if already installed
npm ERR! gyp verb install version is already installed, need to check "installVersion"
npm ERR! gyp verb got "installVersion" 9
npm ERR! gyp verb needs "installVersion" 9
npm ERR! gyp verb install version is good
npm ERR! gyp verb get node dir target node version installed: 16.13.1
npm ERR! gyp verb build dir attempting to create "build" dir: C:UsersuserDocumentsUserusernode_modulesnode-sassbuild
npm ERR! gyp verb build dir "build" dir needed to be created? C:UsersuserDocumentsUserusernode_modulesnode-sassbuild
npm ERR! gyp verb find VS msvs_version not set from command line or npm config
npm ERR! gyp verb find VS VCINSTALLDIR not set, not running in VS Command Prompt
npm ERR! gyp verb find VS could not use PowerShell to find Visual Studio 2017 or newer, try re-running with '--loglevel silly' for more details
npm ERR! gyp verb find VS looking for Visual Studio 2015
npm ERR! gyp verb find VS - not found
npm ERR! gyp verb find VS not looking for VS2013 as it is only supported up to Node.js 8
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS msvs_version not set from command line or npm config
npm ERR! gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
npm ERR! gyp ERR! find VS could not use PowerShell to find Visual Studio 2017 or newer, try re-running with '--loglevel silly' for more details
npm ERR! gyp ERR! find VS looking for Visual Studio 2015
npm ERR! gyp ERR! find VS - not found
npm ERR! gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS **************************************************************
npm ERR! gyp ERR! find VS You need to install the latest version of Visual Studio
npm ERR! gyp ERR! find VS including the "Desktop development with C++" workload.
npm ERR! gyp ERR! find VS For more information consult the documentation at:
npm ERR! gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows
npm ERR! gyp ERR! find VS **************************************************************
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: Could not find any Visual Studio installation to use
npm ERR! gyp ERR! stack     at VisualStudioFinder.fail (C:UsersuserDocumentsUserusernode_modulesnode-gyplibfind-visualstudio.js:121:47)
npm ERR! gyp ERR! stack     at C:UsersuserDocumentsUserusernode_modulesnode-gyplibfind-visualstudio.js:74:16
npm ERR! gyp ERR! stack     at VisualStudioFinder.findVisualStudio2013 (C:UsersuserDocumentsUserusernode_modulesnode-gyplibfind-visualstudio.js:351:14)
npm ERR! gyp ERR! stack     at C:UsersuserDocumentsUserusernode_modulesnode-gyplibfind-visualstudio.js:70:14
npm ERR! gyp ERR! stack     at C:UsersuserDocumentsUserusernode_modulesnode-gyplibfind-visualstudio.js:372:16
npm ERR! gyp ERR! stack     at C:UsersuserDocumentsUserusernode_modulesnode-gyplibutil.js:54:7
npm ERR! gyp ERR! stack     at C:UsersuserDocumentsUserusernode_modulesnode-gyplibutil.js:33:16
npm ERR! gyp ERR! stack     at ChildProcess.exithandler (node:child_process:404:5)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:390:28)
npm ERR! gyp ERR! stack     at maybeClose (node:internal/child_process:1064:16)
npm ERR! gyp ERR! System Windows_NT 10.0.22000
npm ERR! gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\user\Documents\User\user\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
npm ERR! gyp ERR! cwd C:UsersuserDocumentsUserusernode_modulesnode-sass     
npm ERR! gyp ERR! node -v v16.13.1
npm ERR! gyp ERR! node-gyp -v v7.1.2
npm ERR! gyp ERR! not ok
npm ERR! Build failed with error code: 1
npm ERR! A complete log of this run can be found in:
npm ERR!     C:UsersuserAppDataLocalnpm-cache_logs2022-05-12T13_23_17_068Z-debug-0.log

我试图安装visual studio与开发人员的工具,但显然它没有帮助。所以我又被困住了。

我也有同样的错误(VS不能使用PowerShell找到Visual Studio 2017或更新版本),并通过单独安装VS组件来解决:

步骤1:下载并运行VS安装程序:https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022&source=VSLandingPage&cid=2030&passive=false

步骤2:a)取消选择任何打勾的工作负载。b)进入单个组件,选择Windows 10 SK(10.0.20348.0+)和MSVC v143 - VS 2022 c++ x64/x86构建工具(最新)

步骤3)在命令提示符

中重新运行node-gyp包安装程序

我认为这是由LibSass引起的,LibSass是一个用于编译scss的包,已被弃用。你应该可以用Dart Sass代替它,Dart Sass和LibSass是由同一个人制作的。

如果你不想替换这个包,我找到了这个答案,希望能有所帮助。看来你需要Visual c++构建工具和Python。