如何在GCP之类的平台上使用node-argon2?

时间:2019-02-21 19:18:38

标签: node.js google-cloud-platform

对于Node.js应用程序,为了使用node-argon2软件包,必须首先在系统上全局安装node-gyp软件包,以及c / c ++编译器才能构建Argon2源。 (我使用的是Windows,但生产目标实例可能是Ubuntu实例)之后,可以使用Argon2哈希。

当部署到Google Cloud Platform等平台时,我将如何满足此要求?我是否需要创建一个运行以下命令的脚本,

npm i -g node-gyp
npm i node-argon2

还是在这种情况下我可以在其他地方管理全局安装的NPM软件包?

然后,在使用它之前需要进行编译。会在每次部署应用程序时还是只是第一次部署时发生这种情况吗?

1 个答案:

答案 0 :(得分:1)

首先,当您在Google Cloud Platform之类的云服务上进行部署时,您的应用很可能每次都部署在不同的计算机上。

这两个命令之间是有区别的:

npm i -g node-gyp
npm i node-argon2

npm i node-argon2

此应用已安装在您的应用包中。通常,您有一个package.json文件来指定这些依赖项。因此,每次部署时,命令npm i都会安装package.json文件中指定的所有软件包。这与Express等其他软件包的工作原理相同。您可以使用CI / CD(连续集成和部署)来简化此过程。

 npm i -g node-gyp

这是全局安装在您的应用程序部署的计算机上。同样,有必要确保每次部署时都运行此脚本。您既可以在部署脚本中添加它,也可以在docker文件中指定它。

我研究的应用程序已部署在Google Cloud Platform上,最近我们切换为使用node-argon2库进行哈希处理。我们使用docker进行部署,因此在docker文件中,我们运行了一些命令,包括 apt-get更新 apt-get install build-essential 这两个命令确保已安装最新的C ++命令并已安装node-gyp。根据应用程序部署的服务器类型,您可能需要不同的命令。总体思路是相同的,您每次都需要运行它们,最好将其集成到CI / CD管道中。