我想在我的Express项目中安装bcrypt。我已按照本page中针对Windows用户提供的说明进行操作。我只运行了给定的命令npm install --global --production windows-build-tools
,它成功完成了如下图所示的操作。
node-pre-gyp WARN使用针进行node-pre-gyp https下载 node-pre-gyp WARN尝试下载(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找不到针对bcrypt@3.0.3和node@10.15.0的预构建二进制文件(node-v64 ABI,未知)(回退到使用node-gyp进行源编译) 糟糕!堆栈错误:找不到Python可执行文件“ python2.7”,您可以设置PYTHON env变量。 ....更多错误
我设法从此答案here设置Python路径。现在我收到此错误:
node-pre-gyp WARN使用针进行node-pre-gyp https下载 node-pre-gyp WARN试图下载(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找不到bcrypt@3.0.3和node@10.15.0的预构建二进制文件(node-v64 ABI,未知)(使用node-gyp回到源代码编译)在一次解决这个问题。要启用并行构建,请添加“ / m”开关。 blowfish.cc bcrypt.cc bcrypt_node.cc win_delay_load_hook.cc
答案 0 :(得分:1)
您正在尝试下载bcrypt的GitHub中不再存在的软件包,或者该软件包已移动。 无论哪种方式,bcrypt主要都是python软件包。使用npm,它会强制您使用python 2.7,同时存在用于python 3的功能完善的bcrypt(过去使用过)。
我建议使用以节点为中心的软件包,而不是bcrypt或将其使用与npm分开并与python 3分开运行。
答案 1 :(得分:0)
安装
node-gyp全局打包,然后重试npm i bcrypt
npm i -g node-gyp
答案 2 :(得分:0)
经过在Windows 10中安装bcrypt的艰苦努力之后,我最终放弃了并决定安装替代软件包bcrypt.js,该软件包是用JavaScript编写的具有 zero 依赖关系的优化bcrypt 。希望这对遇到类似问题的人有所帮助。
只需使用npm i bcryptjs
代替npm i bcrypt
答案 3 :(得分:0)
我尝试写npm i -g bcrypt
,然后写npm i bcrypt
。现在它对我有用!
答案 4 :(得分:0)
就我而言,环境变量是一团糟。
我必须清除有关node-gyp
的环境变量。 npm life-cycle
模块依赖于node-gyp
,它在路径中以node-gyp
我还注意到python有多个条目,一个是2.7,另一个是3.x 我把它们都保留了下来,并确保npm使用python 2.7
然后我在全球安装了node-gyp
,最后安装了npm i bcrypt