修身养性,知行合一

  • 首页
  • 爱码
    • 系统
    • 数据库
    • JavaScript
    • CSharp
    • Python
  • 生活
    • 文化
    • 美食
  • 杂谈
  • 关于
修身养性,知行合一
码字,杂谈
  1. 首页
  2. 爱码
  3. 前端
  4. 正文

node-sass 的安装

2025年5月14日 47点热度 0人点赞 0条评论

现在新创建的项目基本上都安装的是 Dart Sass,直接 npm install sass 即可。比较早的项目中,有安装了 node-sass 的,但是在当前的 node 环境中,会出现各种问题。

安装版本报错

gyp verb find VS msvs_version not set from command line or npm config 
gyp verb find VS VCINSTALLDIR not set, not running in VS Command Prompt 
gyp verb find VS unknown version "undefined" found at "C:\Program Files\Microsoft Visual Studio\2022\Professional" 
gyp verb find VS checking VS2019 (16.11.33801.447) found at: gyp verb find VS "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools" 
gyp verb find VS - found "Visual Studio C++ core features" gyp verb find VS - found VC++ toolset: v142 
gyp verb find VS - missing any Windows SDK gyp verb find VS could not find a version of Visual Studio 2017 or newer to use 
gyp verb find VS looking for Visual Studio 2015 gyp verb find VS - not found 
gyp verb find VS not looking for VS2013 as it is only supported up to Node.js 8 
gyp ERR! find VS 
gyp ERR! find VS msvs_version not set from command line or npm config 
gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt 
gyp ERR! find VS unknown version "undefined" found at "C:\Program Files\Microsoft Visual Studio\2022\Professional" 
gyp ERR! find VS checking VS2019 (16.11.33801.447) found at: 
gyp ERR! find VS "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools" 
gyp ERR! find VS - found "Visual Studio C++ core features" 
gyp ERR! find VS - found VC++ toolset: v142 
gyp ERR! find VS - missing any Windows SDK 
gyp ERR! find VS could not find a version of Visual Studio 2017 or newer to use 
gyp ERR! find VS looking for Visual Studio 2015 
gyp ERR! find VS - not found 
gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8 
gyp ERR! find VS 
gyp ERR! find VS ************************************************************** 
gyp ERR! find VS You need to install the latest version of Visual Studio 
gyp ERR! find VS including the "Desktop development with C++" workload. 
gyp ERR! find VS For more information consult the documentation at: 
gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows 
gyp ERR! find VS ************************************************************** 
gyp ERR! find VS 
gyp ERR! configure error 
gyp ERR! stack Error: Could not find any Visual Studio installation to use 
gyp ERR! stack at VisualStudioFinder.fail (C:\Users\jeremyjone\code\test\node_modules\node-gyp\lib\find-visualstudio.js:121:47) 
gyp ERR! stack at C:\Users\jeremyjone\code\test\node_modules\node-gyp\lib\find-visualstudio.js:74:16 
gyp ERR! stack at VisualStudioFinder.findVisualStudio2013 (C:\Users\jeremyjone\code\test\node_modules\node-gyp\lib\find-visualstudio.js:351:14) 
gyp ERR! stack at C:\Users\jeremyjone\code\test\node_modules\node-gyp\lib\find-visualstudio.js:70:14 
gyp ERR! stack at C:\Users\jeremyjone\code\test\node_modules\node-gyp\lib\find-visualstudio.js:372:16 
gyp ERR! stack at C:\Users\jeremyjone\code\test\node_modules\node-gyp\lib\util.js:54:7 
gyp ERR! stack at C:\Users\jeremyjone\code\test\node_modules\node-gyp\lib\util.js:33:16 
gyp ERR! stack at ChildProcess.exithandler (node:child_process:410:5) 
gyp ERR! stack at ChildProcess.emit (node:events:513:28) 
gyp ERR! stack at maybeClose (node:internal/child_process:1100:16) 
gyp ERR! System Windows_NT 10.0.22635 
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\jeremyjone\code\test\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library=" 
gyp ERR! cwd C:\Users\jeremyjone\code\test\node_modules\node-sass 
gyp ERR! node -v v16.20.0

这个问题,初看一头雾水,细看,问题关键在 17 行 missing any Windows SDK。查阅了一下, gyp 需要 windows 10 SDK,直接去安装。

因为我有 Visual Studio 2022,直接打开 VS Installer,搜索 windows 10 SDK,全选安装即可(其实选其中一个就可以)。

其实安装了上面,没有网上说的那么麻烦,不需要安装 npm install --global windows-build-tools,我忘了从哪看的也不推荐安装这玩意了,我就没有试过。

python 报错

安装成功后,距离成功近在咫尺,但是在编译时却再次报错:

gyp info find VS using VS2017 (15.9.36101.55) found at:
gyp info find VS "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools"
gyp info find VS run with --verbose for detailed information
gyp verb build/config.gypi creating config file
gyp verb build/config.gypi writing out config file: C:\Users\jeremyjone\code\test\node_modules\node-sass\build\config.gypi
(node:29720) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
(Use `node --trace-deprecation ...` to show where the warning was created)
gyp verb config.gypi checking for gypi file: C:\Users\jeremyjone\code\test\node_modules\node-sass\config.gypi      
gyp verb common.gypi checking for gypi file: C:\Users\jeremyjone\code\test\node_modules\node-sass\common.gypi      
gyp verb gyp gyp format was not specified; forcing "msvs"
gyp info spawn C:\environments\anaconda3\python.exe
gyp info spawn args [
gyp info spawn args   'C:\\Users\\jeremyjone\\code\\test\\node_modules\\node-gyp\\gyp\\gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'msvs',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Users\\jeremyjone\\code\\test\\node_modules\\node-sass\\build\\config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Users\\jeremyjone\\code\\test\\node_modules\\node-gyp\\addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Users\\jeremyjone\\AppData\\Local\\node-gyp\\Cache\\16.20.0\\include\\node\\common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=C:\\Users\\jeremyjone\\AppData\\Local\\node-gyp\\Cache\\16.20.0',
gyp info spawn args   '-Dnode_gyp_dir=C:\\Users\\jeremyjone\\code\\test\\node_modules\\node-gyp',
gyp info spawn args   '-Dnode_lib_file=C:\\\\Users\\\\jeremyjone\\\\AppData\\\\Local\\\\node-gyp\\\\Cache\\\\16.20.0\\\\<(target_arch)\\\\node.lib',
gyp info spawn args   '-Dmodule_root_dir=C:\\Users\\jeremyjone\\code\\test\\node_modules\\node-sass',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'C:\\Users\\jeremyjone\\code\\test\\node_modules\\node-sass\\build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
Traceback (most recent call last):
  File "C:\Users\jeremyjone\code\test\node_modules\node-gyp\gyp\gyp_main.py", line 51, in <module>
    sys.exit(gyp.script_main())
             ^^^^^^^^^^^^^^^^^
  File "C:\Users\jeremyjone\code\test\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 670, in script_main   
    return main(sys.argv[1:])
           ^^^^^^^^^^^^^^^^^^
  File "C:\Users\jeremyjone\code\test\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 662, in main
    return gyp_main(args)
           ^^^^^^^^^^^^^^
  File "C:\Users\jeremyjone\code\test\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 629, in gyp_main      
    [generator, flat_list, targets, data] = Load(
                                            ^^^^^
  File "C:\Users\jeremyjone\code\test\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 150, in Load
    result = gyp.input.Load(
             ^^^^^^^^^^^^^^^
  File "C:\Users\jeremyjone\code\test\node_modules\node-gyp\gyp\pylib\gyp\input.py", line 3021, in Load
    LoadTargetBuildFile(
  File "C:\Users\jeremyjone\code\test\node_modules\node-gyp\gyp\pylib\gyp\input.py", line 411, in LoadTargetBuildFile
    build_file_data = LoadOneBuildFile(
                      ^^^^^^^^^^^^^^^^^
  File "C:\Users\jeremyjone\code\test\node_modules\node-gyp\gyp\pylib\gyp\input.py", line 239, in LoadOneBuildFile   
    build_file_contents = open(build_file_path, "rU").read()
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: invalid mode: 'rU' while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (C:\Users\jeremyjone\code\test\node_modules\node-gyp\lib\configure.js:351:16)
gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:293:12)
gyp ERR! System Windows_NT 10.0.22635
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\jeremyjone\\code\\test\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd C:\Users\jeremyjone\code\test\node_modules\node-sass
gyp ERR! node -v v16.20.0

对于熟悉 python 的同学,一眼就可以看出来这就是 python 报错了,说明我们之前的 SDK 已经安装成功,并且继续向下执行了。为什么会出现此问题呢?

我之前在电脑中安装了 python 3.11 版本,使用起来没什么问题。但是看报错,错在了 open 的 rU 模式。这个模式呢:

  • Python2.3 添加
  • Python 3.4 弃用
  • Python 3.11 移除

看出来了吧,正好我使用的版本处在了没有这个模式的情况之下,导致编译过程报错。那么我们直接切换版本即可。

由于我使用的是 anaconda,它给我们提供了一个比较方便的环境配置。

# 创建 Python3.8 环境
conda create -n py38 python=38

# 激活环境
conda activate py38

此时,我们并没有切换电脑中的主版本,它仍然是 3.11 的。不要着急,我们可以配置 npm。

# 配置 NPM 中使用的 python 版本以及对应路径
npm config set python 'C:\env\anaconda3\envs\py38\python.exe'

此时,我们再执行安装命令,就可以正确安装了。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: node
最后更新:2025年5月14日

jeremyjone

这个人很懒,什么都没留下

打赏 点赞
< 上一篇

文章评论

取消回复

文章目录
  • 安装版本报错
  • python 报错
最新 热点 随机
最新 热点 随机
node-sass 的安装 解决端口被占的问题 vue3 组件 Props 的声明方式 给 div 添加选中状态 请求的取消 rgb 颜色小数兼容问题
node-sass 的安装
Windows Server 2019安装与配置(二) .NET Model名称转换 vue3 组件 Props 的声明方式 关于 *.vue 文件中使用 TypeScript 声明类型报错的解决方案 给MySQL用户添加远程权限 el-table 自定义滚动条后的错位问题

(っ•̀ω•́)っ✎⁾⁾ 开心每一天

COPYRIGHT © 2021 jeremyjone.com. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

京ICP备19012859号-1

京公网安备 11010802028585号