【问题标题】:How to deploy gulp on production server如何在生产服务器上部署 gulp
【发布时间】:2015-11-12 20:52:31
【问题描述】:

在构建网站时(为了清楚起见,仅使用 HTML/JS 的网站),我使用 gulp 编译和连接一些文件,然后将这些文件放置在 build/ 文件夹中。

文件夹结构如下所示:

├── assets
│   ├── images
│   ├── javascripts
│   │   └── app.js
│   └── stylesheets
│       └── style.scss
├── bower.json
├── build
│   ├── bower_components
│   ├── images
│   ├── index.html
│   ├── scripts.min.js
│   └── styles.min.css
├── gulpfile.js
├── index.html
├── node_modules
│   ├── gulp-module-1
│   └── gulp-module-2
├── package.json
└── README

如果我将所有这些文件包含在一个 git 存储库中,我的所有更改都将提交两次。即:assets/stylesheets/style.scss 的变化也会导致build/styles.min.css 的变化。但是,如果我决定从存储库中排除 build/ 文件夹,您将需要生产服务器上的某些开发工具(即 gulp、npm 等)。当生产服务器上的权限有限时,这有时会很困难。显然,排除 assets/ 文件夹不是一个选项,因为您将丢失已编译文件的源代码。

因此我的问题是:在生产服务器上部署它的最佳实践是什么?您是否在 repo 中包含 build/ 文件夹,您是在生产服务器上编译 build/ 文件夹还是有第三种解决方案?

【问题讨论】:

    标签: git gulp


    【解决方案1】:

    虽然不是每个人都可能就这个问题的最佳解决方案达成一致,但我认为你错过了第三种解决方案,我通常更喜欢它。您可以在开发机器上构建所有文件,然后将构建的文件部署到生产服务器。这通常只是一个复制动作。

    这样您就不需要在您的服务器上安装任何开发工具,并且您的版本控制系统中不会有构建输出。

    【讨论】:

    • 感谢您的回复。我也想过这个,这似乎是一个简单的解决方案。但是,我想知道是否还有其他基于 git 的解决方案。然后我就可以使用 Bitbucket 的 web hooks 之类的功能来自动拉取新版本。我知道在不使用 git 的情况下还有其他方法可以做到这一点,但只是想知道。
    • @Diederik 我认为在任何情况下,如果您想使用 Git 进行部署,根据定义,您将遇到任何一个原始问题。
    • 一年半后重温这个,我将把它标记为正确答案。这已被证明是最简单的解决方案。在我的项目中,我通常会设置一个deploy 命令,将rsyncs 和dist/ 连接到生产服务器。
    • 对于想要比rsync 更深入的人,请考虑将ansible(或厨师或木偶)用于基于 yaml 的配置以部署到主机清单(允许同步整个机器状态通过apt除了rsync'ing文件夹
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    相关资源
    最近更新 更多