Giter VIP home page Giter VIP logo

Comments (7)

JosefJezek avatar JosefJezek commented on June 23, 2024

👍

from gulp-rev-replace.

dewwwald avatar dewwwald commented on June 23, 2024

A please do vote up. How is this coming along?

from gulp-rev-replace.

lionelB avatar lionelB commented on June 23, 2024

I end up with this solution/
Hope it could help.

var rev = require("gulp-rev");
var replace = require("gulp-replace");
gulp.task("revision", ["dist:css", "dist:js"], function(){
  return gulp.src(["dist/**/*.css", "dist/**/*.js"])
    .pipe(rev())
    .pipe(gulp.dest(opt.distFolder))
    .pipe(rev.manifest())
    .pipe(gulp.dest(opt.distFolder))
})

gulp.task("revreplace", ["revision"], function(){
  var manifest = require("./" + opt.distFolder + "/rev-manifest.json");
  var stream = gulp.src(opt.distFolder + "/index.html");

  Object.keys(manifest).reduce(function(stream, key){ 
    return stream.pipe(replace(key, manifest[key]));
  }, stream).pipe(gulp.dest(opt.distFolder));
});

from gulp-rev-replace.

dewwwald avatar dewwwald commented on June 23, 2024

This is Awesome!

from gulp-rev-replace.

jamesknelson avatar jamesknelson commented on June 23, 2024

Cheers @lionelB, I've added this to the README

from gulp-rev-replace.

larrybotha avatar larrybotha commented on June 23, 2024

Just a note for anyone else coming across this - #23 (comment) can be improved with a more robust regex:

gulp.task("revreplace", ["revision"], function(){
  var manifest = require("./" + opt.distFolder + "/rev-manifest.json");
  var stream = gulp.src(opt.distFolder + "/index.html");

  Object.keys(manifest).reduce(function(stream, key){
    var regKey = key.replace('/', '\\/');

    return stream.pipe(replace(new RegExp("(" + regKey + ")(?!\\w)", "g"), manifest[key]));
  }, stream).pipe(gulp.dest(opt.distFolder));
});

This ensures that a match in the stream is true only if it is not followed by another word character.

e.g. my-font.woff will not produce false positives for my-font.woff2, and my-font.woff['|"|?|)] will match correctly, and be replaced globally.

EDIT: can be improved with a negative look-behind equivalent for non-word characters too (js doesn't support those, however).
e.g. currently lovely.svg will return a false positive for my-lovely.svg

from gulp-rev-replace.

lionelB avatar lionelB commented on June 23, 2024

@jamesknelson Coool!

@larrybotha nice catch !

from gulp-rev-replace.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.