报错如下
Error: Command failed with exit code 1: node-gyp rebuild
at makeError (C:\Users\Administrator\AppData\Roaming\nvm\v20.4.0\node_modules\cnpm\node_modules\execa\lib\error.js:60:11)
at handlePromise (C:\Users\Administrator\AppData\Roaming\nvm\v20.4.0\node_modules\cnpm\node_modules\execa\index.js:118:26)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async exports.runScript (C:\Users\Administrator\AppData\Roaming\nvm\v20.4.0\node_modules\cnpm\node_modules\npminstall\lib\utils.js:261:12)
at async runLifecycleScripts (C:\Users\Administrator\AppData\Roaming\nvm\v20.4.0\node_modules\cnpm\node_modules\npminstall\lib\lifecycle_scripts.js:66:7)
at async _install (C:\Users\Administrator\AppData\Roaming\nvm\v20.4.0\node_modules\cnpm\node_modules\npminstall\lib\install_package.js:321:5)
at async install (C:\Users\Administrator\AppData\Roaming\nvm\v20.4.0\node_modules\cnpm\node_modules\npminstall\lib\install_package.js:23:12)
at async _installOne (C:\Users\Administrator\AppData\Roaming\nvm\v20.4.0\node_modules\cnpm\node_modules\npminstall\lib\local_install.js:215:15)
at async mapper (C:\Users\Administrator\AppData\Roaming\nvm\v20.4.0\node_modules\cnpm\node_modules\npminstall\lib\local_install.js:140:5)
需要安装 Visual Studio Build Tools
下载后安装如下项目就可以
安装后重试,成功。
为什么需要node-gyp
node-gyp 是一个用 Node.js 编写的跨平台命令行工具,用于编译 Node.js 的本地依赖模块。比如下面这个库
可以看到这个库里的代码是C++写的,发布者以源码的形式发布出来,这样你下下来后需要使用node-gyp编译一下。
为什么不编译好再发布?
nodejs 本身可以在 linux / mac / windows 上工作,但C++不可以,需要在相应平台上重新编译一下,产生最终可用的库。