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

Deployment 部署后,如何在远程服务器上触发gulp/grunt任务?,deployment,gruntjs,npm,gulp,Deployment,Gruntjs,Npm,Gulp,我刚刚切换到了Wordpress的根圣人入门主题:Roots.io/Sage/docs/ 我目前正在阅读部署过程 我的流程通常是: -改变 -咕噜咕噜地建造 -提交(包括已编译脚本) -部署 Sage的.gitignore文件从repo中删除dist文件夹(编译文件),即repo中没有css/js。部署后,您是否应该安装node/npm并在暂存/生产环境中构建资产?如果是这样,部署后如何在远程服务器上触发gulp/grunt任务 我使用它来管理git和部署 部署后,您是否应该安装node/npm

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

我的流程通常是: -改变 -咕噜咕噜地建造 -提交(包括已编译脚本) -部署

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

我使用它来管理git和部署

部署后,您是否应该安装node/npm并在暂存/生产环境中构建资产

你应该避免这样做。对于将编译后的资产提交给风投公司,也有不同的看法,正如您之前所说的那样

让我们看一个例子

您在本地完成了所有测试。您在几天内没有运行
npm更新
,并且您的一个依赖项指定了松散的版本约束;类似于
“~1.0.0”

你部署。在服务器上,
npm安装
gulp
grunt
之前运行
gulp
运行,您的资产构建成功完成,您的应用程序的新版本现在已上线

您不知道,昨天发布了该依赖项的版本
1.0.1
。无论出于何种原因,
1.0.1
引入了一项改变,破坏了应用程序的功能这一突破性的变化现在正在您的网站上进行直播。

即使您可以保证从服务器上的
npm install
中提取的所有依赖项都将反映您在本地/登台时的情况,但在服务器上维护另一组软件(node.js、ruby等)以编译资产的麻烦应该足以阻止您在生产中进行编译


在我看来,您应该将编译后的资产保留在VCS之外,并将其重新同步到服务器,作为部署的一部分。

使用“npm shrinkwrap”以避免被松散的版本控制所捕获