部署后如何在远程服务器上触发 gulp/grunt 任务?
How do you trigger a gulp/grunt task on a remote server after deploy?
我刚刚切换到 Wordpress 的 Roots Sage 入门主题:roots。io/sage/docs/
我目前正在阅读部署过程。
我的流程通常是:
- 做出改变
- 使用 grunt/gulp 构建
- 提交(包括编译脚本)
-部署
Sage 的 .gitignore 文件从 repo ie 中删除 dist 文件夹(编译文件)。回购中没有 css/js。您是否应该在部署后安装 node/npm 并在 staging/production 环境中构建资产?如果是这样,部署后如何在远程服务器上触发 gulp/grunt 任务?
我正在使用 https://www.springloops.com/ 来管理 git 和部署。
Are you supposed to install node/npm and build the assets on staging/production environment after deploy?
你应该避免这样做。正如您之前所说,将编译后的资产提交给 VCS 的意见不一。
让我们看一个例子。
您在本地完成了所有测试。您有几天没有 运行 npm update
,并且您的一个依赖项指定了松散的版本约束;像 "~1.0.0"
.
你部署。在服务器上,npm install
在 gulp
或 grunt
之前是 运行。 gulp
运行s,您的资产构建成功完成,您的应用程序的新版本现已上线。
您不知道,该依赖项的版本 1.0.1
已于昨天发布。无论出于何种原因,1.0.1
引入了一项会破坏您应用程序功能的更改。 该重大更改现已在您的生产站点上生效。
即使您可以保证从服务器上的 npm install
提取的所有依赖项都将反映您的 locally/in 暂存,但在服务器上维护另一组软件会让人头疼 (node.js, ruby, 等等...) 仅用于编译资产 应该足以阻止您在生产中进行编译。
IMO,您应该将已编译的资产放在 VCS 之外,并将它们作为部署的一部分同步到您的服务器。
我刚刚切换到 Wordpress 的 Roots Sage 入门主题:roots。io/sage/docs/ 我目前正在阅读部署过程。
我的流程通常是: - 做出改变 - 使用 grunt/gulp 构建 - 提交(包括编译脚本) -部署
Sage 的 .gitignore 文件从 repo ie 中删除 dist 文件夹(编译文件)。回购中没有 css/js。您是否应该在部署后安装 node/npm 并在 staging/production 环境中构建资产?如果是这样,部署后如何在远程服务器上触发 gulp/grunt 任务?
我正在使用 https://www.springloops.com/ 来管理 git 和部署。
Are you supposed to install node/npm and build the assets on staging/production environment after deploy?
你应该避免这样做。正如您之前所说,将编译后的资产提交给 VCS 的意见不一。
让我们看一个例子。
您在本地完成了所有测试。您有几天没有 运行 npm update
,并且您的一个依赖项指定了松散的版本约束;像 "~1.0.0"
.
你部署。在服务器上,npm install
在 gulp
或 grunt
之前是 运行。 gulp
运行s,您的资产构建成功完成,您的应用程序的新版本现已上线。
您不知道,该依赖项的版本 1.0.1
已于昨天发布。无论出于何种原因,1.0.1
引入了一项会破坏您应用程序功能的更改。 该重大更改现已在您的生产站点上生效。
即使您可以保证从服务器上的 npm install
提取的所有依赖项都将反映您的 locally/in 暂存,但在服务器上维护另一组软件会让人头疼 (node.js, ruby, 等等...) 仅用于编译资产 应该足以阻止您在生产中进行编译。
IMO,您应该将已编译的资产放在 VCS 之外,并将它们作为部署的一部分同步到您的服务器。