gyp ERR! configure error,KeyError: '2019'

2021-10-16  乐帮网

webpack nodejs

断续入坑绝杀之坑:
1197 error code 1
1198 error path C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-sass
1199 error command failed
1200 error command C:\Windows\system32\cmd.exe /d /s /c node-gyp rebuild
1201 error gyp info it worked if it ends with ok
1201 error gyp info using node-gyp@3.8.0
1201 error gyp info using node@16.11.1 | win32 | x64
1201 error (node:4252) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
1201 error (Use `node --trace-deprecation ...` to show where the warning was created)
1201 error gyp info spawn D:\Install\Python27\python.exe
1201 error gyp info spawn args [
1201 error gyp info spawn args   'C:\\Users\\Administrator\\AppData\\Roaming\\npm\\node_modules\\node-sass\\node_modules\\node-gyp\\gyp\\gyp_main.py',
1201 error gyp info spawn args   'binding.gyp',
1201 error gyp info spawn args   '-f',
1201 error gyp info spawn args   'msvs',
1201 error gyp info spawn args   '-G',
1201 error gyp info spawn args   'msvs_version=2019',
1201 error gyp info spawn args   '-I',
1201 error gyp info spawn args   'C:\\Users\\Administrator\\AppData\\Roaming\\npm\\node_modules\\node-sass\\build\\config.gypi',
1201 error gyp info spawn args   '-I',
1201 error gyp info spawn args   'C:\\Users\\Administrator\\AppData\\Roaming\\npm\\node_modules\\node-sass\\node_modules\\node-gyp\\addon.gypi',
1201 error gyp info spawn args   '-I',
1201 error gyp info spawn args   'C:\\Users\\Administrator\\.node-gyp\\16.11.1\\include\\node\\common.gypi',
1201 error gyp info spawn args   '-Dlibrary=shared_library',
1201 error gyp info spawn args   '-Dvisibility=default',
1201 error gyp info spawn args   '-Dnode_root_dir=C:\\Users\\Administrator\\.node-gyp\\16.11.1',
1201 error gyp info spawn args   '-Dnode_gyp_dir=C:\\Users\\Administrator\\AppData\\Roaming\\npm\\node_modules\\node-sass\\node_modules\\node-gyp',
1201 error gyp info spawn args   '-Dnode_lib_file=C:\\Users\\Administrator\\.node-gyp\\16.11.1\\<(target_arch)\\node.lib',
1201 error gyp info spawn args   '-Dmodule_root_dir=C:\\Users\\Administrator\\AppData\\Roaming\\npm\\node_modules\\node-sass',
1201 error gyp info spawn args   '-Dnode_engine=v8',
1201 error gyp info spawn args   '--depth=.',
1201 error gyp info spawn args   '--no-parallel',
1201 error gyp info spawn args   '--generator-output',
1201 error gyp info spawn args   'C:\\Users\\Administrator\\AppData\\Roaming\\npm\\node_modules\\node-sass\\build',
1201 error gyp info spawn args   '-Goutput_dir=.'
1201 error gyp info spawn args ]
1201 error Traceback (most recent call last):
1201 error   File "C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-sass\node_modules\node-gyp\gyp\gyp_main.py", line 16, in <module>
1201 error     sys.exit(gyp.script_main())
1201 error   File "C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-sass\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 545, in script_main
1201 error     return main(sys.argv[1:])
1201 error   File "C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-sass\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 538, in main
1201 error     return gyp_main(args)
1201 error   File "C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-sass\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 514, in gyp_main
1201 error     options.duplicate_basename_check)
1201 error   File "C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-sass\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 98, in Load
1201 error     generator.CalculateVariables(default_variables, params)
1201 error   File "C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-sass\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 1916, in CalculateVariables
1201 error     generator_flags.get('msvs_version', 'auto'))
1201 error   File "C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-sass\node_modules\node-gyp\gyp\pylib\gyp\MSVSVersion.py", line 434, in SelectVisualStudioVersion
1201 error     versions = _DetectVisualStudioVersions(version_map[version], 'e' in version)
1201 error KeyError: '2019'
1201 error gyp ERR! configure error
1201 error gyp ERR! stack Error: `gyp` failed with exit code: 1
1201 error gyp ERR! stack     at ChildProcess.onCpExit (C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-sass\node_modules\node-gyp\lib\configure.js:345:16)
1201 error gyp ERR! stack     at ChildProcess.emit (node:events:390:28)
1201 error gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
1201 error gyp ERR! System Windows_NT 10.0.19042
1201 error gyp ERR! command "D:\\Install\\nodejs\\node.exe" "C:\\Users\\Administrator\\AppData\\Roaming\\npm\\node_modules\\node-sass\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
1201 error gyp ERR! cwd C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-sass
1201 error gyp ERR! node -v v16.11.1
1201 error gyp ERR! node-gyp -v v3.8.0
1201 error gyp ERR! not ok
1202 verbose exit 1

首先分析这个来源。
(1)之前是我是安装了VS2017了,之后又安装了VS2019,卸载了VS2017。
(2)中间我又安装了Phyon3 而没有卸载Phyon2。

以上就是根据源,结果我一路折腾下来遇到五个关键错误。搞个前后端分离真的很麻烦,如果不是业务复杂的站点还是建议不要使用。动了哪里都会有莫名错误了来。以下是记录了使用的方法:
(1)首先卸载了Phyon3安装了Phyon2并重新配置了环境变量
(2)尝试了
npm install --global --production windows-build-tools
(3)npm cache clean --force
(4)npm install --global node-gyp@latest
(5)node node_modules/node-sass/scripts/install.js 
(6)npm install
(7)最后不得不重新安装VS2017里的C++ 库
ed2k://%7Cfile%7Cmu_visual_studio_enterprise_2017_version_15.3_x86_x64_11100063.exe%7C1069960%7C44E1DEF76E77D932FAC67391B253E355%7C/
如下图:

win10

使用了如下命令指定vs2017的路径
npm config set msbuild_path "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe"
set GYP_MSVS_OVERRIDE_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise"
set GYP_MSVS_VERSION=2017

(8)最后不得不指定 npm install node-sass@4.14.1 更换一个版本
(9)证实以上命令作用不大,从而使用了大杀器:rm -r node_modules   
npm install
(10)npx electron-rebuild -d=https://npm.taobao.org/mirrors/atom-shell

最终问题分析:
其实这个问题是由外部环境引起一个错误,没有必要这么费周折,正确的解决方法是npm清理缓存npm cache clean -f 然后来一个rm -r node_modules  再重新npm install。这样就可以搞定了。少走弯路。

公众号二维码

关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力