我有一个使用 Node.js 和 React 构建的项目。每次构建和部署时,或者每次 pod 重置时,我都需要进入 pod 终端并运行“npm run build”(“build”:“react-scripts build”)。有没有办法自动执行此操作? (也许在我的 package.json 脚本中,如果 redhat 有类似于“heroku-postbuild”的特定脚本或 Openshift 网站上的某个地方?)
最佳答案
如果您使用目录中的 Node.js 镜像进行构建,那么我建议您在 package.json 中添加一个“postinstall” Hook 来实现此目的。这是标准 npm/Node.js 支持的约定。
这是一个example repository that demonstrates this 。由于它使用 TypeScript 并且 TypeScript 在运行之前需要编译为 JavaScript,因此我们定义了“postinstall”。当 OpenShift 执行 S2I 时要为您的应用程序生成容器镜像,它运行 npm install (请参阅源 here )。如果您定义了“postinstall” Hook ,则该 Hook 可以构建您的应用程序。这意味着它始终准备就绪,因为它成为容器镜像的一部分 - 即使跨重新部署也是如此。
注意:您需要将构建应用程序所需的依赖项从 package.json 中的“dependency”移动到“devDependencies”。
关于node.js - npm 运行构建 redhat openshift 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50375782/