为什么导入bcrypt会引起“找不到模块napi-v3/bcrypt_lib.node”错误?

12
使用Javascript bcrypt包,我在部署(使用Next.js /api路由和AWS Lambda在Vercel.com上)时遇到了服务器端运行时导入错误。
41f80   ERROR   Error: Cannot find module '/var/task/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node'
Require stack:
- /var/task/node_modules/bcrypt/bcrypt.js
- /var/task/.next/serverless/pages/api/login.js
- /var/task/___next_launcher.js
- /var/runtime/UserFunction.js
- /var/runtime/index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.<anonymous> (/var/task/node_modules/bcrypt/bcrypt.js:6:16)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/var/task/node_modules/bcrypt/bcrypt.js',
    '/var/task/.next/serverless/pages/api/login.js',
    '/var/task/___next_launcher.js',
    '/var/runtime/UserFunction.js',
    '/var/runtime/index.js'
  ]
}

我肯定使用npm安装了它:

"bcrypt": "^5.0.1",

本地可以正常运行,但部署后无法工作。
我在服务器端使用库文件。
我已经搜遍了互联网好几个小时,但找不到任何人与我的问题完全相同。

本地节点版本:v14.16.0
托管节点版本:v14x

1个回答

19

1
非常感谢您的回复。我一年内都想不出来这个! - nkhil
1
我很高兴它对你有帮助! - Kaelin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接