【问题标题】:file src versioning in gulp generated filegulp 生成的文件中的文件 src 版本控制
【发布时间】:2016-12-19 22:29:24
【问题描述】:

我们使用 gulp 插件 https://www.npmjs.com/package/gulp-iconfonthttps://www.npmjs.com/package/gulp-iconfont-css 分别生成 icon-font 和 css。字体缓存在 Chrome 中,所以我想在 style.css 中字体源字符串的末尾添加版本号。

这是我要转换的生成的css的一部分

  @font-face {
    font-family: "some-icons";
    url('/assets/fonts/some-icons.woff2') format('woff2');
  }

想要的输出是

  @font-face {
        font-family: "some-icons";
        url('/assets/fonts/some-icons.woff2?v=someVersion') format('woff2');
      }

其中 someVersion 是时间戳或其他一些随机字符串,可将文件与其先前版本区分开来。

我正在寻找一个 gulp 插件,它将解析 css 并在 src 字符串的末尾添加“salt”。

欢迎其他解决方案

【问题讨论】:

    标签: caching gulp


    【解决方案1】:

    我找到了一个利用这个插件https://www.npmjs.com/package/gulp-modify-file 的解决方案。这是基本的 gulp 任务:它在文件内容中查找 some-icons.woff2 并将其替换为 some-icons.woff2?v=timestamp

    'use strict';
    
    const gulp = require('gulp');
    const modify = require('gulp-modify-file');
    
    const timestamp = Math.round(Date.now() / 1000);
    
    gulp.task('modify', ()=> {
      return gulp.src('tmp/styles.css')
        .pipe(modify(
          (content, path, file)=> {
            content = content.replace('some-icons.woff2', 'some-icons.woff2?v=' + timestamp);
    
            return `${content}`
          }
        ))
        .pipe(gulp.dest('dist'))
    });
    

    【讨论】:

    • @Napolux,享受)
    猜你喜欢
    • 2019-01-15
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 2018-07-03
    • 2011-08-19
    相关资源
    最近更新 更多