【问题标题】:how to remove templateCache with gulp?如何用 gulp 删除 templateCache?
【发布时间】:2017-05-31 12:31:48
【问题描述】:

我使用角度模板缓存。 以下代码用于删除应用模块中的模板缓存,但我需要在开发机器上使用 gulp 删除所有 templateCache。

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

【问题讨论】:

    标签: javascript angularjs gulp angularjs-templates


    【解决方案1】:

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

    由于您使用的是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-allhere

    【讨论】:

    • 感谢您的回答,但我使用 angular-template-cache 进行模板缓存,我想在开发机器上使用 gulp 删除 templateCache。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多