Node.js 无法在aws elastic beanstalk上npm安装bcrypt 3.0.6?

Node.js 无法在aws elastic beanstalk上npm安装bcrypt 3.0.6?,node.js,amazon-web-services,amazon-elastic-beanstalk,bcrypt,Node.js,Amazon Web Services,Amazon Elastic Beanstalk,Bcrypt,我在aws elastic beanstalk上部署了一个节点应用程序,使用了最新的平台(在64位Amazon Linux/4.9.2上运行的Nodejs)和最新的可用节点版本(10.16.0) 在package.json文件中,只要我安装bcrypt^2.0.1,一切都很好 但是,如果我尝试更新到bcrypt^3.0.6的最新版本,则elastic beanstalk在部署期间会失败,并出现以下错误: Error: Cannot find module '../' at Fun

我在aws elastic beanstalk上部署了一个节点应用程序,使用了最新的平台(在64位Amazon Linux/4.9.2上运行的Nodejs)和最新的可用节点版本(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! bcrypt@3.0.6 install: `node-pre-gyp install --fallback-to-build`
  npm ERR! Exit status 1
  npm ERR! 
  npm ERR! Failed at the bcrypt@3.0.6 install script.
  npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
错误:找不到模块'../'
位于Function.Module.\u resolveFilename(internal/modules/cjs/loader.js:636:15)
at Function.Module._load(内部/modules/cjs/loader.js:562:25)
at Module.require(内部/modules/cjs/loader.js:690:17)
根据需要(内部/modules/cjs/helpers.js:25:18)
反对。使用aws和bcrypt,以及建议的修复。但是,修复对我不起作用。这似乎是另一个问题


以前有人遇到过这种情况吗

降级到3.0.0和3.0.5之间的bcrypt版本。在使用节点版本10.14.x到10.16.x运行时,我遇到了相同的问题


我相信bcrypt 3.0.6适用于节点版本>=12.x

bcrypt版本3.0.5和节点10存在相同的问题。我不得不将bcrypt降级到3.0.4版


奇怪的是,npm上当前的bcrypt文档称3.0.6适用于节点12,但先前版本的bcrypt文档称3.0.5适用于节点12。

像bcrypt和sharp这样进行图像处理和加密的包需要额外的权限。因此,您必须创建一个.npmrc文件,并授予在服务器中以root用户身份运行这些文件的权限。这样,您就不会出现“权限拒绝”错误,并自动安装此类软件包

在.npmrc文件中粘贴以下内容


#强制npm以root用户身份运行节点gyp,以防止AWS中的权限拒绝错误npm@5

不安全perm=true



现在,您的bcrypt将在没有任何问题的情况下安装。

尝试使用bcryptjs模块,而不是bcrypt,它是一个更新/最新的npm模块

运行npm install bcryptjs,然后运行npm install
最初回答时

我遇到了相同的问题,在我的例子中,问题与bcrypt无关,而是与节点gyp无法为安装创建临时目录有关

我的修复程序将bcrypt更改为bcryptjs,这是该软件包的更新版本

另一个解决方法是在应用程序的构建中添加一个.npmrc文件,其中包含以下内容: 不安全perm=true


这将允许npm始终在根目录下运行

我是否正在安装bcrypt^3.0.7和
引擎:{node:“v12.16.3”}
在elastic beanstalk上失败