gyp ERR when initializing the uniapp project

After reinstalling the computer, node 18.16.1-x64 was installed, and I encountered no problems when writing back-end code.

When the uniapp project is initialized, gyp ERR is reported. The specific error is as follows:

npm ERR! code 1
npm ERR! path D:\postman\hksvn\project\uniapp*\
ode_modules\
ode-sass
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node scripts/build.js
npm ERR! Building: D:\Program Files\
odejs\
ode.exe D:\postman\hksvn\project\uniapp*
\
ode_modules\
ode-gyp\bin\
ode- 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 D:\Program Files\
odejs\
ode.exe’,
npm ERR! gyp verb cli ‘D:\postman\hksvn\project\uniapp\\
ode_modules\
ode-gyp\bin\
ode-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 [email protected]
npm ERR! gyp info using [email protected] | 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 Python is not set from command line or npm configuration
npm ERR! gyp verb find Python Python is not set from environment variable PYTHON
npm ERR! gyp verb find Python checking if “python3” can be used
npm ERR! gyp verb find Python – executing “python3” to get executable path
npm ERR! gyp verb find Python – “python3” is not in PATH or produced an error
npm ERR! gyp verb find Python checking if “python” can be used
npm ERR! gyp verb find Python – executing “python” to get executable path
npm ERR! gyp verb find Python – “python” is not in PATH or produced an error
npm ERR! gyp verb find Python checking if “python2” can be used
npm ERR! gyp verb find Python – executing “python2” to get executable path
npm ERR! gyp verb find Python – “python2” is not in PATH or produced an error
npm ERR! gyp verb find Python checking if Python is C:\Python37\python.exe
npm ERR! gyp verb find Python – executing “C:\Python37\python.exe” to get version
npm ERR! gyp verb find Python – “C:\Python37\python.exe” could not be run
npm ERR! gyp verb find Python checking if Python is C:\Python27\python.exe
npm ERR! gyp verb find Python – executing “C:\Python27\python.exe” to get version
npm ERR! gyp verb find Python – “C:\Python27\python.exe” could not be run
npm ERR! gyp verb find Python checking if the py launcher can be used to find Python
npm ERR! gyp verb find Python – executing “py.exe” to get Python executable path
npm ERR! gyp verb find Python – “py.exe” is not in PATH or produced an error
npm ERR! gyp ERR! find Python
npm ERR! gyp ERR! find Python Python is not set from command line or npm configuration
npm ERR! gyp ERR! find Python Python is not set from environment variable PYTHON
npm ERR! gyp ERR! find Python checking if “python3” can be used
npm ERR! gyp ERR! find Python – “python3” is not in PATH or produced an error
npm ERR! gyp ERR! find Python checking if “python” can be used
npm ERR! gyp ERR! find Python – “python” is not in PATH or produced an error
npm ERR! gyp ERR! find Python checking if “python2” can be used
npm ERR! gyp ERR! find Python – “python2” is not in PATH or produced an error
npm ERR! gyp ERR! find Python checking if Python is C:\Python37\python.exe
npm ERR! gyp ERR! find Python – “C:\Python37\python.exe” could not be run
npm ERR! gyp ERR! find Python checking if Python is C:\Python27\python.exe
npm ERR! gyp ERR! find Python – “C:\Python27\python.exe” could not be run
npm ERR! gyp ERR! find Python checking if the py launcher can be used to find Python
npm ERR! gyp ERR! find Python – “py.exe” is not in PATH or produced an error
npm ERR! gyp ERR! find Python
npm ERR! gyp ERR! find Python ****************************************** ****************
npm ERR! gyp ERR! find Python You need to install the latest version of Python.
npm ERR! gyp ERR! find Python Node-gyp should be able to find and use Python. If not,
npm ERR! gyp ERR! find Python you can try one of the following options:
npm ERR! gyp ERR! find Python – Use the switch –python=”C:\Path\To\python.exe”
npm ERR! gyp ERR! find Python (accepted by both node-gyp and npm)
npm ERR! gyp ERR! find Python – Set the environment variable PYTHON
npm ERR! gyp ERR! find Python – Set the npm configuration variable python:
npm ERR! gyp ERR! find Python npm config set python “C:\Path\To\python.exe”
npm ERR! gyp ERR! find Python For more information consult the documentation at:
npm ERR! gyp ERR! find Python https://github.com/nodejs/node-gyp#installation
npm ERR! gyp ERR! find Python ****************************************** ****************
npm ERR! gyp ERR! find Python
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: Could not find any Python installation to use
npm ERR! gyp ERR! stack at PythonFinder.fail (D:\postman\hksvn\project\uniapp*
\
ode_modules\
ode-gyp\lib\find-python.js: 302:47)
npm ERR! gyp ERR! stack at PythonFinder.runChecks (D:\postman\hksvn\project\uniapp*
\
ode_modules\
ode-gyp\lib\find-python.js :136:21)
npm ERR! gyp ERR! stack at PythonFinder. (D:\postman\hksvn\project\uniapp*
\
ode_modules\
ode-gyp\lib\find-python. js:200:18)
npm ERR! gyp ERR! stack at PythonFinder.execFileCallback (D:\postman\hksvn\project\uniapp*
\
ode_modules\
ode-gyp\lib\find-python.js :266:16)
npm ERR! gyp ERR! stack at exithandler (node:child_process:427:5)
npm ERR! gyp ERR! stack at ChildProcess.errorhandler (node:child_process:439:5)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:513:28)
npm ERR! gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:289:12)
npm ERR! gyp ERR! stack at onErrorNT (node:internal/child_process:476:16)
npm ERR! gyp ERR! stack at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
npm ERR! gyp ERR! System Windows_NT 10.0.22000
npm ERR! gyp ERR! command “D:\Program Files\
odejs\
ode.exe” “D:\postman\hksvn\project\uniapp\
\
ode_modules\ node-gyp\bin\
ode-gyp.js” “rebuild” “–verbose” “–libsass_ext=” “–libsass_cflags=” “–libsass_ldflags=” “–libsass_library=”
npm ERR! gyp ERR! cwd D:\postman\hksvn\project\uniapp*
****\
ode_modules\
ode-sass
npm ERR! gyp ERR! node -v v18.16.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

I thought it was because python2 was not installed, but after installation it still reported an error. This time it reported that VS2013 could not be found.

npm ERR! code 1
npm ERR! path D:\postman\hksvn\project\uniapp*\
ode_modules\
ode-sass
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node scripts/build.js
npm ERR! Building: D:\Program Files\
odejs\
ode.exe D:\postman\hksvn\project\uniapp*
\
ode_modules\
ode-gyp\bin\
ode- 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 D:\Program Files\
odejs\
ode.exe’,
npm ERR! gyp verb cli ‘D:\postman\hksvn\project\uniapp\\
ode_modules\
ode-gyp\bin\
ode-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 [email protected]
npm ERR! gyp info using [email protected] | 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 Python is not set from command line or npm configuration
npm ERR! gyp verb find Python Python is not set from environment variable PYTHON
npm ERR! gyp verb find Python checking if “python3” can be used
npm ERR! gyp verb find Python – executing “python3” to get executable path
npm ERR! gyp verb find Python – “python3” is not in PATH or produced an error
npm ERR! gyp verb find Python checking if “python” can be used
npm ERR! gyp verb find Python – executing “python” to get executable path
npm ERR! gyp verb find Python – executable path is “C:\Python27\python.exe”
npm ERR! gyp verb find Python – executing “C:\Python27\python.exe” to get version
npm ERR! gyp verb find Python – version is “2.7.18”
npm ERR! gyp info find Python using Python version 2.7.18 found at “C:\Python27\python.exe”
npm ERR! gyp verb get node dir no –target version specified, falling back to host node version: 18.16.1
npm ERR! gyp verb command install [18.16.1’]
npm ERR! gyp verb install input version string “18.16.1”
npm ERR! gyp verb install installing version: 18.16.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: 18.16.1
npm ERR! gyp verb build dir attempting to create “build” dir: D:\postman\hksvn\project\uniapp*
\
ode_modules\
ode-sass\build
npm ERR! gyp verb build dir “build” dir needed to be created? D:\postman\hksvn\project\uniapp*
\
ode_modules\
ode-sass\build
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 (D:\postman\hksvn\project\uniapp*
\
ode_modules\
ode-gyp\lib\find-visualstudio .js:121:47)
npm ERR! gyp ERR! stack at D:\postman\hksvn\project\uniapp*
\
ode_modules\
ode-gyp\lib\find-visualstudio.js:74:16
npm ERR! gyp ERR! stack at VisualStudioFinder.findVisualStudio2013 (D:\postman\hksvn\project\uniapp*
\
ode_modules\
ode-gyp\lib\find-visualstudio .js:351:14)
npm ERR! gyp ERR! stack at D:\postman\hksvn\project\uniapp*
\
ode_modules\
ode-gyp\lib\find-visualstudio.js:70:14
npm ERR! gyp ERR! stack at D:\postman\hksvn\project\uniapp*
\
ode_modules\
ode-gyp\lib\find-visualstudio.js:372 :16
npm ERR! gyp ERR! stack at D:\postman\hksvn\project\uniapp*
\
ode_modules\
ode-gyp\lib\util.js:54:7
npm ERR! gyp ERR! stack at D:\postman\hksvn\project\uniapp*
\
ode_modules\
ode-gyp\lib\util.js:33:16
npm ERR! gyp ERR! stack at ChildProcess.exithandler (node:child_process:427:5)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:513:28)
npm ERR! gyp ERR! stack at maybeClose (node:internal/child_process:1091:16)
npm ERR! gyp ERR! System Windows_NT 10.0.22000
npm ERR! gyp ERR! command “D:\Program Files\
odejs\
ode.exe” “D:\postman\hksvn\project\uniapp\
\
ode_modules\
ode- gyp\bin\
ode-gyp.js” “rebuild” “–verbose” “–libsass_ext=” “–libsass_cflags=” “–libsass_ldflags=” “–libsass_library=”
npm ERR! gyp ERR! cwd D:\postman\hksvn\project\uniapp*
\
ode_modules\
ode-sass
npm ERR! gyp ERR! node -v v18.16.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

It is estimated that the current node version does not correspond to node-gyp. Uninstall node v18.16.1, download node v16.20.2-x64 and install it.

Check the node version: node -v

v16.20.2

Check npm version: npm -v

8.19.4

View npm configuration information (which includes the default locations of repository and cache paths): npm config ls

; "builtin" config from D:\Program Files\
odejs\
ode_modules\
pm\
pmrc

; prefix = "C:\Users\Administrator\AppData\Roaming\\
pm" ; overridden by user

; "user" config from C:\Users\Administrator\.npmrc

cache = "D:\Program Files\\
odejs\\
ode_modules\\
ode_cache"
prefix = "D:\Program Files\\
odejs\\
ode_modules\\
ode_global"

; node bin location = D:\Program Files\
odejs\
ode.exe
; node version = v16.20.2
; npm local prefix = D:\Program Files\
odejs
; npm version = 8.19.4
; cwd = D:\Program Files\
odejs\
ode_modules
; HOME = C:\Users\Administrator
; Run `npm config ls -l` to show all defaults.

The cache and prefix have been set before and can be modified through the following commands

Modify the value of prefix

npm config set prefix [global warehouse address] (note that path \ must be used \)
Modify the cache value: npm config set cache [global cache address] (note that the path \ must use \)

After the modification is completed, use: npm config ls to view it

npm config set registry https://registry.npmmirror.com/

npm config get registry
https://registry.npmmirror.com/

npm config ls

; "builtin" config from D:\Program Files\
odejs\
ode_modules\
pm\
pmrc

; prefix = "C:\Users\Administrator\AppData\Roaming\\
pm" ; overridden by user

; "user" config from C:\Users\Administrator\.npmrc

cache = "D:\Program Files\\
odejs\\
ode_modules\\
ode_cache"
prefix = "D:\Program Files\\
odejs\\
ode_modules\\
ode_global"
registry = "https://registry.npmmirror.com/"

; node bin location = D:\Program Files\
odejs\
ode.exe
; node version = v16.20.2
; npm local prefix = D:\Program Files\
odejs
; npm version = 8.19.4
; cwd = D:\Program Files\
odejs\
ode_modules
; HOME = C:\Users\Administrator
; Run `npm config ls -l` to show all defaults.

Then run npm i in the uniapp project and complete successfully.