我使用角模板缓存。 下面的代码存在用于删除应用程序模块中的模板缓存,但我需要在开发机器上删除所有具有吞噬功能的templateCache。如何使用gulp删除templateCache?
myApp.run(function($rootScope, $templateCache) {
$rootScope.$on('$viewContentLoaded', function() {
$templateCache.removeAll();
});
});
我使用角模板缓存。 下面的代码存在用于删除应用程序模块中的模板缓存,但我需要在开发机器上删除所有具有吞噬功能的templateCache。如何使用gulp删除templateCache?
myApp.run(function($rootScope, $templateCache) {
$rootScope.$on('$viewContentLoaded', function() {
$templateCache.removeAll();
});
});
避免模板缓存的最好方法是修改您的文件。
由于您使用的是gulp
,因此您可以使用gulp-rev
或gulp-rev-all
修订文件。
什么是修订?
静态资产修改通过将内容哈希附加到文件名unicorn.css
→unicorn-d41d8cd98f.css
。
即,在每个版本上,文件名改变并且这样避免了模板缓存。 您可以修改每一个文件,包括.html
,.css
,.js
,images
,videos
等
由于gulp-rev-all
是最新的,并从gulp-rev
分叉,让我们对gulp-rev-all
只说说。
Revisioning使用gulp-rev-all
:
var revAll = require('gulp-rev-all');
,如果你想从忽略一些revisioning文件,你可以是这样做的。
var rev = new revAll({dontRenameFile: [/^\/favicon.ico$/g, /^\/index.html/g]})
考虑您的所有文件夹dist
和保存的文件夹www
新revisioned文件。(你可以将它们保存在dist
也。考虑www
是你的build目录。)
return gulp.src('dist/**')
.pipe(rev.revision())
.pipe(gulp.dest('www'))
接下来,创建一个manifest
文件来映射您的文件与修订的文件。为此使用.manifestFile()
函数。它将返回一个转换函数,该函数将过滤掉通过管道的所有现有文件并发出新的清单文件。必须在.revision()之后调用。
.pipe(rev.manifest())
.pipe(gulp.dest('www/manifest'));
的资产清单,映射所述原始路径的revisioned路径,将被写入到www/manifest/rev-manifest.json
:
{
"css/unicorn.css": "css/unicorn.098f6bcd.css",
"js/unicorn.js": "js/unicorn.273c2cin.js"
.....
.....
}
完整代码:
gulp.task('rev',() => {
var revAll = require('gulp-rev-all'),
rev = new revAll({dontRenameFile: [/^\/favicon.ico$/g, /^\/index.html/g]});
return gulp.src('dist/**')
.pipe(rev.revision())
.pipe(gulp.dest('www'))
.pipe(rev.manifest())
.pipe(gulp.dest('www/manifest'));
});
了解更多关于gulp-rev-all
here
感谢您的回答,但我使用角模板缓存模板缓存,我想在开发机器上删除templateCache与吞噬。 –