Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gruntjs 使用rev和usemin为webdev设计grunt工作流时遇到问题_Gruntjs_Grunt Contrib Watch_Grunt Usemin - Fatal编程技术网

Gruntjs 使用rev和usemin为webdev设计grunt工作流时遇到问题

Gruntjs 使用rev和usemin为webdev设计grunt工作流时遇到问题,gruntjs,grunt-contrib-watch,grunt-usemin,Gruntjs,Grunt Contrib Watch,Grunt Usemin,我将开始在grunt watch中使用grunt rev和grunt usemin,以满足我的web开发需求(特别是一个RESTful web应用程序) 我有一台本地开发机器,它将运行grunt watch在我的JS文件上附加修订标识符。我git-commit和git-push将我的树推送到git-repo,然后让生产服务器git-pull从git-repo中将更改显示给web访问者 问题是我不希望我的git repo在每次提交时存储不同的文件名(由于grunt rev)。这将很糟糕,因为这样我

我将开始在grunt watch中使用grunt rev和grunt usemin,以满足我的web开发需求(特别是一个RESTful web应用程序)

我有一台本地开发机器,它将运行grunt watch在我的JS文件上附加修订标识符。我
git-commit
git-push
将我的树推送到git-repo,然后让生产服务器
git-pull
从git-repo中将更改显示给web访问者

问题是我不希望我的git repo在每次提交时存储不同的文件名(由于
grunt rev
)。这将很糟糕,因为这样我就无法在提交之间执行
git diff
,而不会让屏幕上充斥着出现和消失的文件内容,而且它(有时)可能会比只存储文件的小差异占用更多的存储空间

我看到的唯一解决方案是在my
.gitignore
中添加包含版本化文件名的
build
目录,以便不在git中存储这些文件(文件名不断变化)。但这是否意味着我也必须在我的生产服务器上运行
grunt-watch
,以便生成
build
目录,其中包含版本化的文件名?但这会变得复杂:新进程必须在远程服务器上运行,可能在处理文件时出错的几率很小。这不是我所希望的解决办法


你们还有别的解决办法吗?您建议我做什么?

解决这个问题的方法是在提交和部署新文件之前删除以前的“构建”文件。无需保留已生成的旧文件,因为您始终可以使用源文件(在git中)重新生成它们。

如果在提交之前删除
/build
,则git存储库不包含
/build
,那么生产服务器从哪里下载
/build
呢?我将/build保存在我的git repo中,并在提交之前使用类似的方法清除它的旧版本:你是说git repo有一个空的
/build
目录?或者它是否有一个只包含新的和相关的文件的
/build
,而不是包含未清理的旧垃圾?是的,它只包含上一个版本,因此您也可以在生产服务器上使用它。因此,您在git repo中的每次提交中都会得到不同的文件名(包含修订ID)?