问题描述
npm ERR! code 1
npm ERR! path D:\ALearnBlog\shiyi-blog\blog-web\node_modules\node-sass
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node scripts/build.js
npm ERR! Building: E:\Program_Files\nodejs\node.exe D:\ALearnBlog\shiyi-blog\blog-web\node_modules\node-gyp\bin\node-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 ‘E:\Program_Files\nodejs\node.exe’,
npm ERR! gyp verb cli ‘D:\ALearnBlog\shiyi-blog\blog-web\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@8.4.1
npm ERR! gyp info using node@18.8.0 | 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:\Users\14132\AppData\Roaming\Microsoft\Windows\Start”
npm ERR! gyp verb find Python - executing “C:\Users\14132\AppData\Roaming\Microsoft\Windows\Start” to get executable path
npm ERR! gyp verb find Python - “C:\Users\14132\AppData\Roaming\Microsoft\Windows\Start” is not in PATH or produced an error
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:\Users\14132\AppData\Local\Programs\Python\Python311\python.exe”
npm ERR! gyp verb find Python - executing “C:\Users\14132\AppData\Local\Programs\Python\Python311\python.exe” to get version
npm ERR! gyp verb find Python - version is “3.11.8”
npm ERR! gyp info find Python using Python version 3.11.8 found at “C:\Users\14132\AppData\Local\Programs\Python\Python311\python.exe”
npm ERR! gyp verb get node dir no --target version specified, falling back to host node version: 18.8.0
npm ERR! gyp verb command install [ ‘18.8.0’ ]
npm ERR! gyp verb install input version string “18.8.0”
npm ERR! gyp verb install installing version: 18.8.0
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.8.0
npm ERR! gyp verb build dir attempting to create “build” dir: D:\ALearnBlog\shiyi-blog\blog-web\node_modules\node-sass\build
npm ERR! gyp verb build dir “build” dir needed to be created? Yes
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:\ALearnBlog\shiyi-blog\blog-web\node_modules\node-gyp\lib\find-visualstudio.js:122:47)
npm ERR! gyp ERR! stack at D:\ALearnBlog\shiyi-blog\blog-web\node_modules\node-gyp\lib\find-visualstudio.js:75:16
npm ERR! gyp ERR! stack at VisualStudioFinder.findVisualStudio2013 (D:\ALearnBlog\shiyi-blog\blog-web\node_modules\node-gyp\lib\find-visualstudio.js:363:14)
npm ERR! gyp ERR! stack at D:\ALearnBlog\shiyi-blog\blog-web\node_modules\node-gyp\lib\find-visualstudio.js:71:14
npm ERR! gyp ERR! stack at D:\ALearnBlog\shiyi-blog\blog-web\node_modules\node-gyp\lib\find-visualstudio.js:384:16
npm ERR! gyp ERR! stack at D:\ALearnBlog\shiyi-blog\blog-web\node_modules\node-gyp\lib\util.js:54:7
npm ERR! gyp ERR! stack at D:\ALearnBlog\shiyi-blog\blog-web\node_modules\node-gyp\lib\util.js:33:16
npm ERR! gyp ERR! stack at ChildProcess.exithandler (node:child_process:420: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! stack at ChildProcess._handle.onexit (node:internal/child_process:302:5)
npm ERR! gyp ERR! System Windows_NT 10.0.22621
npm ERR! gyp ERR! command “E:\Program_Files\nodejs\node.exe” “D:\ALearnBlog\shiyi-blog\blog-web\node_modules\node-gyp\bin\node-gyp.js” “rebuild” “–verbose” “–libsass_ext=” “–libsass_cflags=” “–libsass_ldflags=” “–libsass_library=”
npm ERR! gyp ERR! cwd D:\ALearnBlog\shiyi-blog\blog-web\node_modules\node-sass
npm ERR! gyp ERR! node -v v18.8.0
npm ERR! gyp ERR! node-gyp -v v8.4.1
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:\Users\14132\AppData\Local\npm-cache_logs\2024-02-08T14_48_54_564Z-debug-0.log
解决方案
这个问题表明在尝试安装node-sass
时遇到了编译错误,具体是因为找不到合适的Visual Studio安装来使用。这通常发生在Windows环境下,因为node-gyp
(一个用于编译原生Node.js模块的工具)需要Visual Studio的C++编译器和相关工具来编译node-sass
。
解决方案
-
安装Visual Studio Build Tools
- 你需要安装Visual Studio和C++构建工具。最简单的方法是安装Visual Studio Build Tools。
- 你可以从Visual Studio的官方网站下载并安装它。
- 在安装过程中,请确保选择了“使用C++的桌面开发”工作负载。
-
配置
node-gyp
使用Visual Studio版本-
如果你已经安装了Visual Studio(比如2017、2019或更高版本),你需要配置
node-gyp
以使用特定版本的Visual Studio。这可以通过设置一个环境变量或使用npm config
来完成。例如,对于Visual Studio 2019,你可以使用以下命令:npm config set msvs_version 2019
-
-
使用
windows-build-tools
-
另一个解决方案是使用
windows-build-tools
,这是一个npm包,可以自动安装Visual Studio Build Tools(包括C++编译器)。 -
以管理员权限打开命令提示符或PowerShell,并运行:
npm install --global windows-build-tools
-
这个命令会自动安装所有必要的构建工具。
-
-
切换到
dart-sass
-
考虑使用
dart-sass
代替node-sass
。dart-sass
是Sass的主要实现,且不依赖于原生模块,因此不需要编译。 -
在你的项目中,你可以卸载
node-sass
并安装sass
:npm uninstall node-sass npm install sass
-
-
清理npm缓存
-
有时候,清理npm的缓存可以解决一些奇怪的安装问题:
npm cache clean --force
-
-
重试安装
-
在采取上述措施后,尝试重新安装你的项目依赖:
npm install
-
采用这些解决方案之一应该能够帮助你解决在安装node-sass
时遇到的问题。如果你选择安装Visual Studio或windows-build-tools
,请确保在安装完成后重新启动你的命令行工具,以确保所有的环境变量更改都被正确应用。