繁体   English   中英

如何用gulp删除templateCache?

[英]how to remove templateCache with gulp?

我使用angular-template-cache。 按照代码存在以删除应用程序模块中的模板缓存,但我需要在开发机器上删除所有templateCache与gulp。

myApp.run(function($rootScope, $templateCache) {
   $rootScope.$on('$viewContentLoaded', function() {
      $templateCache.removeAll();
   });
});

避免模​​板缓存的最佳方法是修改文件。

由于您使用gulp ,您可以使用gulp-revgulp-rev-all修改文件。

什么是修改?

通过将内容哈希附加到文件名unicorn.cssunicorn-d41d8cd98f.css来进行静态资产修订。

即,在每个构建时,文件名都会更改,从而避免模板缓存。 您可以修改每个文件,包括.html.css.jsimagesvideos等。

由于gulp-rev-all是最新的并且从gulp-rev分叉,所以我们只讨论gulp-rev-all

使用gulp-rev-all

var revAll = require('gulp-rev-all');

如果你想忽略修改中的一些文件,你可以这样做。

var rev = new revAll({dontRenameFile: [/^\/favicon.ico$/g, /^\/index.html/g]})

考虑所有文件都在文件夹dist ,并将新修订的文件保存在www 。文件夹中。(您也可以将它们保存在dist 。考虑到www是您的构建目录。)

return gulp.src('dist/**')
  .pipe(rev.revision())
  .pipe(gulp.dest('www'))

接下来,创建一个manifest文件,以使用修订过的文件映射文件。 为此使用.manifestFile()函数。 它返回一个转换函数,它将过滤掉通过管道的任何现有文件,并发出一个新的清单文件。 必须在.revision()之后调用。

.pipe(rev.manifest())
.pipe(gulp.dest('www/manifest'));

将原始路径映射到修订路径的资产清单将写入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 信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM