安装 node-sass 提示 Visual C++ 组件问题

安装 node-sass 提示 Visual C++ 组件问题

安装 node-sass 提示 Visual C++ 组件问题

还原项目

使用 git checkout . , git clean -xdf 清空工作目录

还原最原始的空间

执行安装

npm install

出现下列错误

gyp info spawn C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
gyp info spawn args [ 'build/binding.sln',
gyp info spawn args   '/nologo',
gyp info spawn args   '/p:Configuration=Release;Platform=x64' ]
Build started 2017/4/15 11:57:06.
Project "E:\kibana\node_modules\node-sass\build\binding.sln" on node 1 (default
 targets).
ValidateSolutionConfiguration:
  Building solution configuration "Release|x64".
MSBUILD : error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。要解决此问题,
1) 安装 .NET Fram
ework 2.0 SDK;2) 安装 Microsoft Visual Studio 2005;或 3) 如果将该组件安装到了
其他位置,请将其位置添加到系统
路径中。 [E:\kibana\node_modules\node-sass\build\binding.sln]
Done Building Project "E:\kibana\node_modules\node-sass\build\binding.sln" (def
ault targets) -- FAILED.

解决安装跨平台编译器

这个解决办法是在官方文档中写明的
另一个官方解决办法是安装 Visual Studio SDK

执行这行命令必须使用管理员权限运行的cmd,或者 PowerShell

npm install --global --production windows-build-tools

再执行,如果还出现下列的错误

gyp verb build type Release
gyp verb architecture x64
gyp verb node dev dir C:\Users\Administrator\.node-gyp\10.1.0
gyp verb found first Solution file build/binding.sln
gyp verb could not find "msbuild.exe" in PATH - finding location in registry
gyp info spawn C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
gyp info spawn args [ 'build/binding.sln',
gyp info spawn args   '/nologo',
gyp info spawn args   '/p:Configuration=Release;Platform=x64' ]
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
Build started 2018/6/6 15:52:53.
Project "E:\web_hwf\Vue\02app\node_modules\node-sass\build\binding.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
  Building solution configuration "Release|x64".

则执行 npm uninstall node-sass 然后重新安装 npm install node-sass

如果依旧出现问题,建议使用 npm cache clean --force 清理缓存后安装

本次解决方法

这次问题解决的命令执行顺序为

清空工作目录

git checkout .
git clean -xdf

npm cache clean --force 清理工作空间

安装最新 node-sass

npm install node-sass

npm install 安装

出错后执行

注意需要管理员权限运行的 cmd 执行才行

npm install --global --production windows-build-tools

然后可以运行

node run dev

原因分析

直接使用 npm install 无法安装,而只能分成两步安装

npm install node-sass 后再 npm install

推测原因是 node-sassnodejs 版本不匹配导致的,
因为先执行 node-sass 安装是安装的最新版本,而 npm install 是安装指定版本的

例如此次执行 npm install node-sass 安装的版本是 v4.13.0
项目 packages.json 中指定的 node-sass 版本是 v4.11.0 版本,nodejs 版本是 v12.xx.xx 版本

所以出现错误

验证推测结果

  1. nodejs 版本降级为 v10.xx.xx

  2. 清空所有文件

  3. 执行 npm install

结果:正常安装

最新版本的 nodejs 要匹配最新版 node-sass ,否则两者都只能使用旧版

写于: 2019-10-26

可能随着时间推移,版本更新后,不会出现这种问题

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://zwc365.com/2019/10/28/install-node-sass-version-error