You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS项目依赖安装失败(bcrypt安装出错求助)

NodeJS项目依赖安装失败(bcrypt相关错误)

我被这个问题困扰两天了,没法在NodeJS项目目录下安装依赖,不确定是不是项目本身的问题。项目GitHub仓库地址:https://github.com/DeanShooster/NodeJS-BookStore

执行npm install时出现如下错误:

$ npm install
npm WARN old lockfile 
npm WARN old lockfile The package-lock.json file was created with an old version of npm,
npm WARN old lockfile so supplemental metadata must be fetched from the registry.
npm WARN old lockfile
npm WARN old lockfile This is a one-time fix-up, please be patient...
npm WARN old lockfile
npm ERR! code 1
npm ERR! path C:\Users\FPCC\Desktop\Web Development\NodeJS-BookStore\node_modules\bcrypt
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node-pre-gyp install --fallback-to-build
npm ERR! Failed to execute 'C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js configure --fallback-to-build --module=C:\Users\FPCC\Desktop\Web Development\NodeJS-BookStore\node_modules\bcrypt\lib\binding\napi-v3\bcrypt_lib.node --module_name=bcrypt_lib --module_path=C:\Users\FPCC\Desktop\Web Development\NodeJS-BookStore\node_modules\bcrypt\lib\binding\napi-v3 --napi_version=8 --node_abi_napi=napi 
--napi_build_version=3 --node_napi_label=napi-v3' (1)
npm ERR! node-pre-gyp info it worked if it ends with ok
npm ERR! node-pre-gyp info using node-pre-gyp@1.0.8
npm ERR! node-pre-gyp info using node@19.0.1 | win32 | x64
npm ERR! node-pre-gyp info check checked for "C:\Users\FPCC\Desktop\Web Development\NodeJS-BookStore\node_modules\bcrypt\lib\binding\napi-v3\bcrypt_lib.node" (not found)
npm ERR! node-pre-gyp http GET https://github.com/kelektiv/node.bcrypt.js/releases/download/v5.0.1/bcrypt_lib-v5.0.1-napi-v3-win32-x64-unknown.tar.gz
npm ERR! node-pre-gyp ERR! install request to https://objects.githubusercontent.com/github-production-release-asset-2e65be/611333/2dce3380-7741-11eb-8e53-10fe9e70e497?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221115%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221115T114040Z&X-Amz-Expires=300&X-Amz-Signature=cea9b3203437b7c07a048b48de00309b6a19c51b47db7310c5c957805d904f1d&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=611333&response-content-disposition=attachment%3B%20filename%3Dbcrypt_lib-v5.0.1-napi-v3-win32-x64-unknown.tar.gz&response-content-type=application%2Foctet-stream failed, reason: connect ETIMEDOUT 185.199.110.133:443
npm ERR! node-pre-gyp WARN Pre-built binaries not installable for bcrypt@5.0.1 and node@19.0.1 (node-v111 ABI, unknown) (falling back to source compile with node-gyp)
npm ERR! node-pre-gyp WARN Hit error request to https://objects.githubusercontent.com/github-production-release-asset-2e65be/611333/2dce3380-7741-11eb-8e53-10fe9e70e497?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221115%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221115T114040Z&X-Amz-Expires=300&X-Amz-Signature=cea9b3203437b7c07a048b48de00309b6a19c51b47db7310c5c957805d904f1d&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=611333&response-content-disposition=attachment%3B%20filename%3Dbcrypt_lib-v5.0.1-napi-v3-win32-x64-unknown.tar.gz&response-content-type=application%2Foctet-stream failed, reason: connect ETIMEDOUT 185.199.110.133:443
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@9.1.0
npm ERR! gyp info using node@19.0.1 | win32 | x64
npm ERR! gyp info ok
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@9.1.0
npm ERR! gyp info using node@19.0.1 | win32 | x64
npm ERR! gyp info find Python using Python version 3.10.0 found at "C:\Users\FPCC\python3.exe"
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS msvs_version not set from command line or npm config
npm ERR! gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
npm ERR! gyp ERR! find VS could not use PowerShell to find Visual Studio 2017 or newer, try re-running with '--loglevel silly' for more details
npm ERR! gyp ERR! find VS looking for Visual Studio 2015
npm ERR! gyp ERR! find VS - not found
npm ERR! gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS **************************************************************
npm ERR! gyp ERR! find VS You need to install the latest version of Visual Studio
npm ERR! gyp ERR! find VS including the "Desktop development with C++" workload.
npm ERR! gyp ERR! find VS For more information consult the documentation at:
npm ERR! gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows
npm ERR! gyp ERR! find VS **************************************************************
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: Could not find any Visual Studio installation to use
npm ERR! gyp ERR! stack     at VisualStudioFinder.fail (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:122:47)   
npm ERR! gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:75:16
npm ERR! gyp ERR! stack     at VisualStudioFinder.findVisualStudio2013 (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:364:14)
npm ERR! gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:71:14
npm ERR! gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:385:16
npm ERR! gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\util.js:54:7
npm ERR! gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\util.js:33:16
npm ERR! gyp ERR! stack     at ChildProcess.exithandler (node:child_process:420:5)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
npm ERR! gyp ERR! stack     at maybeClose (node:internal/child_process:1098:16)
npm ERR! gyp ERR! System Windows_NT 10.0.19044
npm ERR! gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "configure" "--fallback-to-build" "--module=C:\\Users\\FPCC\\Desktop\\Web Development\\NodeJS-BookStore\\node_modules\\bcrypt\\lib\\binding\\napi-v3\\bcrypt_lib.node" "--module_name=bcrypt_lib" "--module_path=C:\\Users\\FPCC\\Desktop\\Web Development\\NodeJS-BookStore\\node_modules\\bcrypt\\lib\\binding\\napi-v3" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=3" "--node_napi_label=napi-v3"
npm ERR! gyp ERR! cwd C:\Users\FPCC\Desktop\Web Development\NodeJS-BookStore\node_modules\bcrypt
npm ERR! gyp ERR! node -v v19.0.1
npm ERR! gyp ERR! node-gyp -v v9.1.0
npm ERR! gyp ERR! not ok
npm ERR! node-pre-gyp ERR! build error
npm ERR! node-pre-gyp ERR! stack Error: Failed to execute 'C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js configure --fallback-to-build --module=C:\Users\FPCC\Desktop\Web Development\NodeJS-BookStore\node_modules\bcrypt\lib\binding\napi-v3\bcrypt_lib.node --module_name=bcrypt_lib --module_path=C:\Users\FPCC\Desktop\Web Development\NodeJS-BookStore\node_modules\bcrypt\lib\binding\napi-v3 --napi_version=8 --node_abi_napi=napi --napi_build_version=3 --node_napi_label=napi-v3' (1)
npm ERR! node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (C:\Users\FPCC\Desktop\Web Development\NodeJS-BookStore\node_modules\@mapbox\node-pre-gyp\lib\util\compile.js:89:23)
npm ERR! node-pre-gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
npm ERR! node-pre-gyp ERR! stack     at maybeClose (node:internal/child_process:1098:16)
npm ERR! node-pre-gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:304:5)
npm ERR! node-pre-gyp ERR! System Windows_NT 10.0.19044
npm ERR! node-pre-gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\FPCC\\Desktop\\Web Development\\NodeJS-BookStore\\node_modules\\@mapbox\\node-pre-gyp\\bin\\node-pre-gyp" "install" "--fallback-to-build"
npm ERR! node-pre-gyp ERR! cwd C:\Users\FPCC\Desktop\Web Development\NodeJS-BookStore\node_modules\bcrypt
npm ERR! node-pre-gyp ERR! node -v v19.0.1
npm ERR! node-pre-gyp ERR! node-pre-gyp -v v1.0.8
npm ERR! node-pre-gyp ERR! not ok

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\FPCC\AppData\Local\npm-cache\_logs\2022-11-15T11_40_05_764Z-debug-0.log

我尝试了谷歌上能找到的所有解决方案,但均未奏效,恳请帮助解决该问题。


解决方案

1. 修复网络问题,手动下载预编译包

错误核心原因之一是无法下载bcrypt的预编译二进制包(超时):

  • 切换至可稳定访问GitHub的网络环境,或配置代理确保能访问GitHub资源
  • 手动下载对应包:
    1. 找到bcrypt v5.0.1版本的win32-x64预编译包
    2. 将下载的文件解压后,把bcrypt_lib.node放到C:\Users\FPCC\Desktop\Web Development\NodeJS-BookStore\node_modules\bcrypt\lib\binding\napi-v3\目录下
    3. 重新执行npm install

2. 配置node-gyp编译环境

当预编译包无法使用时,node-gyp需要本地编译环境,错误提示缺少Visual Studio:

  • 安装Visual Studio 2017及以上版本,必须勾选「使用C++的桌面开发」组件
  • 或用管理员权限打开命令行,执行:
    npm install --global windows-build-tools
    
  • 你的Python版本(3.10.0)符合node-gyp要求,无需调整

3. 降级Node版本到LTS

bcrypt@5.0.1与Node@19.0.1存在兼容性问题,降级到LTS版本可避免:

  • 使用nvm管理Node版本:
    nvm install 18
    nvm use 18
    
  • 删除项目目录下的node_modules文件夹和package-lock.json文件,重新执行npm install

4. 替换bcrypt为bcryptjs

如果不想折腾编译环境,可改用纯JS实现的bcryptjs,无需编译:

  • 卸载bcrypt:
    npm uninstall bcrypt
    
  • 安装bcryptjs:
    npm install bcryptjs
    
  • 修改项目中所有引入bcrypt的代码,替换为bcryptjs,两者API基本一致

内容的提问来源于stack exchange,提问作者Yazan Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 16:37:43