bcrypt@2.0.1尝试从错误的URL结果404下载如何解决?

问题描述

我正在尝试在新服务器上恢复古老的应用程序。该应用程序在流星1.5.1和nodejs 4.8.4上运行。 在package.json中,有"bcrypt": "^2.0.1",项。当我尝试通过运行meteor npm install --save安装软件包时,尝试从错误的URL下载bcrypt,结果为404。以下是错误输出。.

# meteor npm install --save

> bcrypt@2.0.1 install /my-app/node_modules/bcrypt
> node-pre-gyp install --fallback-to-build

node-pre-gyp ERR! Tried to download(404): https://github.com/kelektiv/node.bcrypt.js/releases/download/v2.0.1/bcrypt_lib-v2.0.1-node-v72-linux-x64-glibc.tar.gz 
node-pre-gyp ERR! Pre-built binaries not found for bcrypt@2.0.1 and node@12.18.4 (node-v72 ABI,glibc) (falling back to source compile with node-gyp) 
make: Entering directory '/my-app/node_modules/bcrypt/build

输出中可以看到,它正在尝试从不存在的(错误的)URL下载。正确的网址应为:https://github.com/kelektiv/node.bcrypt.js/releases/download/v2.0.1/bcrypt_lib-v2.0.1-node-v46-linux-x64-glibc.tar.gz 因为nodejs 4.8.4的模块版本是 v46 。我不确定为什么要先下载 node@12.18.4

问题是后备版本甚至没有编译。.到处都是C ++错误。我认为,如果我能以某种方式解决预构建的二进制问题,就可以避免后备构建问题?如何指向正确的网址,或者至少可以事先下载tar.gz文件并将其放置在某处?

解决方法

我终于找到了答案!我以与预期不同的用户身份运行meteor npm install --save命令。结果,meteor npm install --save命令在该用户的PATH中下载了整个新的nodejs版本,并尝试安装软件包。在正确的用户环境中运行meteor npm install --save命令即可​​解决问题。