node.js - 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++ 错误。我假设如果我能以某种方式修复预构建的二进制问题,我可以避免回退构建问题吗?我怎样才能将它指向正确的 url,或者至少可以tar.gz
预先下载文件并将其放在某个地方?
解决方案
我终于找到了答案!meteor npm install --save
我以与预期不同的用户身份运行命令。结果meteor npm install --save
命令在该用户中下载了全新的 nodejs 版本PATH
并尝试安装软件包。通过在正确的用户环境中运行meteor npm install --save
命令来解决问题。
推荐阅读
- android - 获取配置文件不同于 GATT 和 GATT_SERVER 的已连接设备列表
- python-3.x - 如何找到使用 python 完成给定供应网络的供应商明智成本
- unit-testing - 如何编写测试用例来验证 OAuth 令牌?
- dictionary - 我正在尝试从 ethplorer api 获取每个地址的地址信息,但我面临太多请求如何解决
- c++ - glsl顶点着色器统一变量没有被激活
- ansible - 如何使用 ansible 更改挂载的所有权?
- amazon-web-services - EB Worker 有问题:ELB 运行状况失败或不可用于 2 个实例中的 1 个
- python - 在 matplotlib 中填充子图的双循环
- node.js - 关闭 mongoDB 连接
- blockchain - 如何检索位于不同节点上的帐户的帐户信息?