Usando el paquete bcrypt de Javascript, obtengo este error de importación del tiempo de ejecución del lado del servidor solo cuando se implementa (en Vercel.com usando rutas Next.js /api que son AWS Lambdas debajo del capó):
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' ] }Definitivamente npm lo instalé:
"bcrypt": "^5.0.1", Funciona localmente, pero no cuando se implementa.
Estoy usando el lado del servidor de la biblioteca.
He buscado en Internet durante horas tratando de encontrar la respuesta a esto, pero no puedo encontrar a nadie que tenga exactamente este problema.
Versión del nodo local: v14.16.0
Versión del nodo alojado: v14x
Encontré la respuesta aquí: https://forum.serverless.com/t/after-making-a-deploy-i-test-the-function-and-show-this/8624/2
TLDR: tuve que usar bcryptjs, que está escrito exclusivamente en Javascript. Aparentemente, la biblioteca bcrypt regular requiere algunas dependencias de C++ que no están garantizadas en algunos entornos (como el entorno de nodo de AWS).