node.js - 如何在 GCP 等平台上使用 node-argon2?
问题描述
对于 Node.js 应用程序,为了使用 node-argon2 包,必须首先在系统上全局安装 node-gyp 包以及 ac/c++ 编译器来构建 Argon2 源。(我使用的是 Windows,但生产目标实例可能是 Ubuntu 实例)之后,可以使用 Argon2 散列。
当部署到像谷歌云平台这样的平台时,我将如何满足这个要求?我是否需要创建一个运行以下命令的脚本,
npm i -g node-gyp
npm i node-argon2
或者在这种情况下我是否在其他地方管理全局安装的 NPM 包?
然后,需要编译它才能使用它。每次部署应用程序时都会发生这种情况还是只是第一次发生这种情况?
解决方案
首先,当您在像 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 update apt-get install build-essential 这两个命令确保安装了最新的 C++ 命令并安装了 node-gyp。根据您的应用部署的服务器类型,您可能需要不同的命令。总体思路是一样的,您需要每次都运行它们,最好将其集成到您的 CI/CD 管道中。
推荐阅读
- moodle - Moodle 错误“您无权在此处查看课程。”
- r - 当 `df1$DateTime==df2$DateTime` 时,如何将 `DateTime` 从 `df1` 更改为 `DateTime2` 从 `df2`。对于“df1”的其余行,我减去 60s
- python - 嵌套 while 和 for 循环中的无限循环
- c - 为什么在比较线性搜索和二进制搜索时每次都为零?
- ios - 视图控制器未初始化仍然内存泄漏
- unity3d - 运动学在统一中找不到吗
- python - 熊猫 7 天
- algorithm - 循环内的 console.log(i) 算作大 O 中的操作
- javascript - GAS/Javascript 在总结数字时给出错误的数字
- angular - 使用 routet-outlet 时如何组件实例