安装node-sass时遇到了编译错误如何解决

news/2024/12/23 5:02:26/

问题描述

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

解决方案

  1. 安装Visual Studio Build Tools

    • 你需要安装Visual Studio和C++构建工具。最简单的方法是安装Visual Studio Build Tools
    • 你可以从Visual Studio的官方网站下载并安装它。
    • 在安装过程中,请确保选择了“使用C++的桌面开发”工作负载。
  2. 配置node-gyp使用Visual Studio版本

    • 如果你已经安装了Visual Studio(比如2017、2019或更高版本),你需要配置node-gyp以使用特定版本的Visual Studio。这可以通过设置一个环境变量或使用npm config来完成。例如,对于Visual Studio 2019,你可以使用以下命令:

      npm config set msvs_version 2019
      
  3. 使用windows-build-tools

    • 另一个解决方案是使用windows-build-tools,这是一个npm包,可以自动安装Visual Studio Build Tools(包括C++编译器)。

    • 以管理员权限打开命令提示符或PowerShell,并运行:

      npm install --global windows-build-tools
      
    • 这个命令会自动安装所有必要的构建工具。

  4. 切换到dart-sass

    • 考虑使用dart-sass代替node-sassdart-sass是Sass的主要实现,且不依赖于原生模块,因此不需要编译。

    • 在你的项目中,你可以卸载node-sass并安装sass

      npm uninstall node-sass
      npm install sass
      
  5. 清理npm缓存

    • 有时候,清理npm的缓存可以解决一些奇怪的安装问题:

      npm cache clean --force
      
  6. 重试安装

    • 在采取上述措施后,尝试重新安装你的项目依赖:

      npm install
      

采用这些解决方案之一应该能够帮助你解决在安装node-sass时遇到的问题。如果你选择安装Visual Studio或windows-build-tools,请确保在安装完成后重新启动你的命令行工具,以确保所有的环境变量更改都被正确应用。
在这里插入图片描述


http://www.ppmy.cn/news/1350364.html

相关文章

《CSS 简易速速上手小册》第4章:视觉美学(2024 最新版)

文章目录 4.1 颜色理论在 CSS 设计中的应用:网页的调色盘4.1.1 基础知识4.1.2 重点案例:创建一个具有情感设计的登录页面4.1.3 拓展案例 1:使用颜色增强信息的可视化表示4.1.4 拓展案例 2:利用颜色创建网站的品牌身份 4.2 字体与文…

【后端高频面试题--Linux篇】

🚀 作者 :“码上有前” 🚀 文章简介 :后端高频面试题 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 后端高频面试题--Linux篇 Windows和Linux的区别?Unix和Linux有什么区别&#xff1f…

设计模式理解:单例模式+工厂模式+建设者模式+原型模式

迪米特法则:Law of Demeter, LoD, 最少知识原则LKP 如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。 所以,在运用迪米特…

网络安全的今年:量子、生成人工智能以及 LLM 和密码

尽管世界总是难以预测,但网络安全的几个强劲趋势表明未来几个月的发展充满希望和令人担忧。有一点是肯定的:2024 年将是非常重要且有趣的一年。 近年来,人工智能(AI)以令人难以置信的速度发展,其在网络安全…

Java-并发高频面试题-2

接着之前的Java-并发高频面试题 7. synchronized的实现原理是怎么样的? 首先我们要知道synchronized它是解决线程安全问题的一种方式,而具体是怎么解决的呢?主要是通过加锁的方式来解决 在底层实现上来看 是通过 monitorenter、monitorexit…

校园团餐SAAS系统源码

## 项目介绍 校园团餐SAAS系统,是全新推出的一款轻量级、高性能、前后端分离的团餐系统,支持微信小程序 。 技术特点 > * 前后端完全分离 (互不依赖 开发效率高) > * 采用PHP8 (强类型严格模式) > * ThinkPHP8.0(轻量级PHP开发框…

Git分支规范和迭代流程

Git分支 feature分支:功能分支 dev分支:开发分支 test分支:测试分支 master分支:生产环境分支 hotfix分支:bug修复分支。从master拉取,修复并测试完成merge回master和dev。 某些团队可能还会有 reale…

2024-02-08 Unity 编辑器开发之编辑器拓展1 —— 自定义菜单栏

文章目录 1 特殊文件夹 Editor2 在 Unity 菜单栏中添加自定义页签3 在 Hierarchy 窗口中添加自定义页签4 在 Project 窗口中添加自定义页签5 在菜单栏的 Component 菜单添加脚本6 在 Inspector 为脚本右键添加菜单7 加入快捷键8 小结 1 特殊文件夹 Editor ​ Editor 文件夹是 …