首页 文章

部署后如何在远程服务器上触发gulp / grunt任务?

提问于
浏览
2

我刚刚切换到Wordpress的Roots Sage入门主题:roots.io/sage/docs/,我目前正在阅读部署过程 .

我的流程通常是: - 进行更改 - 使用grunt / gulp构建 - 提交(包括编译的脚本) - 部署

Sage的.gitignore文件从repo中删除dist文件夹(编译文件) . 回购中没有css / js . 您是否应该在部署后安装node / npm并在登台/ 生产环境 环境中构建资产?如果是这样,如何在部署后在远程服务器上触发gulp / grunt任务?

我正在使用https://www.springloops.com/来管理git和deploy .

1 回答

  • 2

    您是否应该在部署后安装node / npm并在登台/ 生产环境 环境中构建资产?

    你应该避免这样做 . 关于将编译资产提交给VCS的看法不一,正如您之前所说的那样 .

    我们来看一个例子 .

    你在本地完成了所有测试 . 您没有在几天内运行 npm update ,并且其中一个依赖项指定了松散版本约束;像 "~1.0.0" 这样的东西 .

    你部署 . 在服务器上, npm installgulpgrunt 之前运行 . gulp 运行,您的资产的构建成功完成,您的应用程序的新版本现在正在运行 .

    您不知道,该依赖项的版本 1.0.1 昨天已发布 . 无论出于何种原因, 1.0.1 引入了一项破坏应用程序功能的更改 . That breaking change is now live on your site in production.

    即使你可以保证在服务器上从 npm install 拉出的所有依赖关系都会反映你在本地/暂存时的内容,但是在服务器上维护另一组软件(node.js,ruby等等)的头痛只是为了编译资产应足以阻止您在 生产环境 中进行编译 .

    IMO,您应该将已编译的资产保留在VCS之外,并将它们作为部署的一部分与您的服务器进行rsync .

相关问题