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

迁移Express项目至Bun时,使用Bun.password.hash提示找不到Bun

解决Express迁移Bun时的bcrypt相关问题

一、解决npm bcrypt模块找不到二进制文件的问题

出现Cannot find module "/.../bcrypt_lib.node"错误是因为bcrypt的预编译二进制包和Bun运行时不兼容,可尝试以下方案:

  • 重新安装bcrypt,让Bun重新编译适配:
    bun remove bcrypt
    bun add bcrypt
    
  • 若仍报错,改用纯JS实现的bcryptjs替代(无需编译,兼容性更好):
    bun add bcryptjs
    
    代码里替换为bcryptjs的API,用法和bcrypt基本一致:
    const bcrypt = require('bcryptjs');
    const hashedPass = await bcrypt.hash(password, 10);
    

二、解决Bun内置密码哈希功能的Cannot find name 'Bun'错误

情况1:JavaScript项目

确保你是用bun run命令执行代码,而不是node命令。Bun全局对象只有在Bun运行时环境中才存在,用Node执行会找不到这个对象。

情况2:TypeScript项目

需要安装Bun的类型定义文件,并配置tsconfig.json:

  1. 安装类型依赖:
    bun add -D @types/bun
    
  2. 修改tsconfig.json,将types数组添加"bun":
    {
      "compilerOptions": {
        "types": ["bun"]
      }
    }
    
    这样TypeScript就能识别全局的Bun对象了。

另外,确认你的Bun版本是最新的,旧版本可能存在兼容性问题,更新命令:

bun upgrade

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:04:58