如何在 Windows 10 上安装 bcrypt

How to install bcrypt on Windows 10

我想为 windows 个用户安装 bcrypt in my Express project. I have followed the instructions provided in this page。我只是 运行 给定的命令 npm install --global --production windows-build-tools 它成功了,如下图所示。

但是当我 运行 npm i bcrypt 时,我仍然收到以下错误:

node-pre-gyp WARN Using needle for node-pre-gyp https download node-pre-gyp WARN Tried to download(404): https://github.com/kelektiv/node.bcrypt.js/releases/download/v3.0.3/bcrypt_lib-v3.0.3-node-v64-win32-x64-unknown.tar.gz node-pre-gyp WARN Pre-built binaries not found for bcrypt@3.0.3 and node@10.15.0 (node-v64 ABI, unknown) (falling back to source compile with node-gyp) gyp ERR! stack Error: Can't find Python executable "python2.7", you can set the PYTHON env variable. ....more errors

我设法根据这个答案 设置了 Python 路径。现在我得到这个错误:

node-pre-gyp WARN Using needle for node-pre-gyp https download node-pre-gyp WARN Tried to download(404) https://github.com/kelektiv/node.bcrypt.js/releases/download/v3.0.3/bcrypt_lib-v3.0.3-node-v64-win32-x64-unknown.tar.gz

node-pre-gyp WARN Pre-built binaries not found for bcrypt@3.0.3 and node@10.15.0 (node-v64 ABI, unknown) (falling back to source compile with node-gyp) Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch. blowfish.cc bcrypt.cc bcrypt_node.cc win_delay_load_hook.cc

您正在尝试下载一个不再存在于 bcrypt 的 GitHub 中的包,或者该包已移动。 无论哪种方式,bcrypt 主要是一个 python 包。使用 npm,它会强制您使用 python 2.7,而 python 3(过去使用过)有一个功能完善的 bcrypt 版本。

我建议使用以节点为中心的包而不是 bcrypt 或将它的使用从 npm 中分离出来,运行 它与 python 分开 3.

安装 node-gyp全局打包然后重试npm i bcrypt

npm i -g node-gyp

经过如此艰苦的安装 bcrypt in windows 10, I finally gave up and decided to install alternative package bcrypt.js,这是用 JavaScript 编写的优化 bcrypt,具有 依赖性。希望这对面临类似问题的人有所帮助。

只需使用 npm i bcryptjs 而不是 npm i bcrypt

我试着写npm i -g bcrypt然后写npm i bcrypt。现在对我有用了!

就我而言,环境变量一团糟。

我必须清理关于 node-gyp 的环境变量。 npm life-cycle 模块依赖于 node-gyp 并且它以 node-gyp

的形式存在于路径中

我还注意到 python 有多个条目,一个是 2.7,另一个是 3.x 我保留了它们并确保 npm 使用 python 2.7

然后我全局安装了 node-gyp 最后 npm i bcrypt

https://github.com/nodejs/node-gyp#installation

有时 npm i -g node-gyp 命令不起作用。在我的例子中,我只是 运行 命令 npm i -g node-gyp 并尝试卸载并再次安装 bycript 并且它有效。

删除 bcrypt

npm uninstall bcrypt

重新下载 bcrypt

npm install bcrypt