执行npm install --global windows-build-tools时遇process.env类型错误
npm install --global windows-build-tools的TypeError问题 在Node.js v18.12.0、npm 8.19环境下执行npm install --global windows-build-tools时,出现以下错误:
TypeError: 'process.env' only accepts a configurable, writable, and enumerable data descriptor
这是因为Node.js v18对process.env的实现做了修改,导致旧版windows-build-tools的代码不兼容。以下是几种可行的解决办法:
改用官方推荐的编译环境(首选)
windows-build-tools已经被官方弃用,Node.js v16及以上版本建议直接安装微软官方的Visual Studio生成工具。安装时选择「使用C++的桌面开发」工作负载,勾选MSVC v143生成工具、Windows 11 SDK等核心组件,安装完成后重启终端,编译环境即可正常使用,无需额外配置。降级Node.js版本
若一定要使用windows-build-tools,可以临时降级到Node.js v16.x LTS版本(比如v16.20.0),执行npm install --global windows-build-tools完成安装后,再切换回v18版本即可,编译环境依然有效。临时环境变量配置(不推荐)
以管理员身份打开命令提示符,手动设置以下环境变量:setx GYP_MSVS_VERSION 2022 setx PYTHON "%USERPROFILE%\.windows-build-tools\python27\python.exe"设置完成后重启终端再尝试安装,但这个方法无法从根本解决兼容问题,仅作为临时 workaround。
内容的提问来源于stack exchange,提问作者user3836476

