【问题标题】:What is the artifact in NodeJs/Webpack project and how do we do CI/CD with that?NodeJs/Webpack 项目中的工件是什么,我们如何使用它进行 CI/CD?
【发布时间】:2020-05-20 22:30:09
【问题描述】:

我有一个使用 webpack 的 node js 应用程序,它基本上将所有文件构建到一个 dist 文件夹中。我想要做的是自动化部署过程。

思考过程是: 1) Jenkins 将从 git 中拉取应用程序 2) Jenkins 将构建应用程序 3)这是我需要帮助的地方。在这种情况下,工件是 dist 文件夹。

大多数在线示例都有将 nodejs 工件部署到 nexus 存储库中的情况,但在这种特殊情况下,我们是否需要它。如果没有,我们如何继续部署这个构建的应用程序?

【问题讨论】:

    标签: javascript node.js jenkins webpack continuous-integration


    【解决方案1】:

    Nexus 是一个二进制存储库。它使您能够对构建工件进行版本控制。在部署构建工件之前对其进行版本控制是一种很好的做法,这样您可以在出现问题时回滚。

    部署取决于您的提供商。如果你只有一个可以通过 ssh 访问的服务器,那么有几个插件可以帮助你做到这一点。

    一个流行的是https://plugins.jenkins.io/ssh-steps 文档:https://jenkins.io/doc/pipeline/steps/ssh-steps/#sshput-ssh-steps-sshput-put-a-filedirectory-on-remote-node

    【讨论】:

    • 嗯,好的,所以在这种情况下,我最好将 dist 文件夹压缩并在 nexus 中对其进行版本化
    • 确实会。除非您的应用程序打算作为 npm 包被另一个应用程序使用。在这种情况下,不要发布到 nexus,而是发布到 npm(nexus 可以托管 npm 存储库)。一个好的做法是在 nexus/npm 上部署您版本化的工件。我的意思是,不要将您的工件从 jenkins 推送到您的服务器(例如通过 scp),只需从服务器上的 nexus 获取工件(例如使用 wget 或 npm)
    猜你喜欢
    • 1970-01-01
    • 2022-01-01
    • 2017-07-28
    • 2015-02-01
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    相关资源
    最近更新 更多