无法在Azure上部署node.js项目,罪魁祸首是Bcrypt
我目前正在从事部署在Azure上的node.js项目。我刚刚使用bcrypt添加了密码加密。在我的测试计算机上一切正常,但当我在Azure上部署时,部署失败,我收到以下消息:无法在Azure上部署node.js项目,罪魁祸首是Bcrypt,node.js,azure,bcrypt,Node.js,Azure,Bcrypt,我目前正在从事部署在Azure上的node.js项目。我刚刚使用bcrypt添加了密码加密。在我的测试计算机上一切正常,但当我在Azure上部署时,部署失败,我收到以下消息: node-gyp rebuild C:\DWASFiles\Sites\invata\VirtualDirectory0\site\wwwroot\node_modules\bcrypt>node "D:\Program Files (x86)\nodejs\node_modules\npm\bin\node-gy
node-gyp rebuild
C:\DWASFiles\Sites\invata\VirtualDirectory0\site\wwwroot\node_modules\bcrypt>node "D:\Program Files (x86)\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node- gyp\bin\node-gyp.js" rebuild
gypnpm ERR! bcrypt@0.7.6 install: `node-gyp rebuild`
npm ERR! `cmd "/c" "node-gyp rebuild"` failed with 1
An error has occurred during web site deployment.
npm ERR!
npm ERR! Failed at the bcrypt@0.7.6 install script.
BCrypt的安装有点棘手,因为需要下载并安装openSSL。那么,是否有可能在azure上部署这样的模块,还是毫无希望
谢谢,
Stéphane经过一些调查,我遇到了另一个bcrypt模块,这是一个本地JS模块,它在Azure上完美地工作:我自己也遇到了这个问题 在过去一个小时寻找解决方案后,以下几点对我来说完美无瑕:
npm安装bcrypt
从那时起,连续部署工作完美无瑕,希望这对其他人有所帮助 +1,因为我有确切的问题。你应该把这个标记为答案!bcrypt还在Azure上为我抛出了一个错误。用crypt nodejs交换它就成功了。谢谢。很好-直接交换meThis是一个解决方案,但由于bcrypt是专门设计为速度慢的,这可能是高容量服务器中的一个问题。本机bcrypt模块的优点是bcrypt计算本身是异步运行的。尽管bcrypt nodejs通过提供
compare
和compareSync
来暗示它支持异步,但这两种操作实际上都是同步操作,只有“异步”操作在下一个刻度上发生。它仍然会停止所有操作,直到bcrypt计算完成,并且不是真正的异步。是否有人想出了更好的解决方案?我按照建议切换到bcrypt的原生JS实现,但它比原生版本慢3倍。我可以看到这一点,并在高容量环境中导致问题。有时,当执行npm安装时
npm无法构建某些库,您可以尝试npm rebuild
使npm重新构建所有需要构建的库。在Azure Web App上运行npm安装命令不是一个好的做法,部署应该是全自动的,安装bcrypt节点似乎是最好的解决方案。