我有一个部署在aws elastic beanstalk上的node应用,使用最新的平台(Nodejs运行在64位Amazon Linux4.9.2上)和最新的可用node版本(10.16.0)。
在package.json文件中,只要我安装的是bcrypt ^2.0.1,一切都很正常。
然而,如果我尝试更新到最新版本的bcrypt ^3.0.6,elastic beanstalk在部署过程中会出现以下错误。
Error: Cannot find module '../'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:690:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object.<anonymous> (/tmp/deployment/application/node_modules/.bin/node-pre-gyp:15:20)
at Module._compile (internal/modules/cjs/loader.js:776:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
在bcrypt的网站上有提到 权限问题 与aws和bcrypt,以及一个建议的修复。 然而,这个修复方法对我来说并不奏效。 这似乎是一个不同的问题。
之前有人遇到过这种情况吗?
降级到3.0.0和3.0.5之间的bcrypt版本。 当我使用10.14.x至10.16.x版本的Node运行时,也遇到了同样的问题。
我相信bcrypt 3.0.6是针对Node版本>= 12.x的。
bcrypt 3.0.5版本与Node 10有同样的问题。我不得不 将bcrypt降级到3.0.4版本
奇怪的是,目前在npm上的bcrypt文档说3.0.6适用于Node 12,但之前的bcrypt版本文档却说3.0.5适用于Node 12。