我正在尝试在新服务器上恢复古老的应用程序。该应用程序在流星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
文件并将其放置在某处?
答案 0 :(得分:0)
我终于找到了答案!我以与预期不同的用户身份运行meteor npm install --save
命令。结果,meteor npm install --save
命令在该用户的PATH
中下载了整个新的nodejs版本,并尝试安装软件包。在正确的用户环境中运行meteor npm install --save
命令即可解决问题。