gulp-gitshasuffix

A plugin for Gulp to suffix files with latest commit sha.

gulp-gitshasuffix

gitshasuffix plugin for gulp

A plugin for Gulp to suffix files with latest commit sha.

E.g. Use instead of having timestamps on compiled files to avoid caching (versioning).

Whereas gulp-rev sets a hash based on content, this uses the sha hash from the latest git commit.

First, install gulp-gitshasuffix as a development dependency:

npm install --save-dev gulp-gitshasuffix

Then, add it to your gulpfile.js:

var gitshasuffix = require("gulp-gitshasuffix");
 
var files = gulp.src("./src/*.ext")
    .pipe(gitshasuffix({
    length: 6,
    separator: "-"
  }))
 
files.on('data', function (file){
  console.log("Modified file:", file);
});

Full usage example:

var gitshasuffix = require("gulp-gitshasuffix");
 
gulp.task('moveFiles'. function () {
  gulp.src("./src/*.ext")
     .pipe(gitshasuffix())
     .pipe(gulp.dest('./'));
});

Type: Integer
Default: 6

Length of the sha to show.

Type: String
Default: "-"

Separator before the suffix.

Type: Boolean
Default: "false"

If the sha-substring should be as a folder instead of suffix. E.g.

New path:  /Code/gulp-gitshasuffix/test/fixtures/c03b75/a.txt

To see all examples run from root:

$ gulp --gulpfile examples/gulpfile.js --tasks
[gulp] Using file /Users/example/gulp-gitshasuffix/examples/gulpfile.js
[gulp] Working directory changed to /Users/example/gulp-gitshasuffix/examples
[gulp] Tasks for /Users/example/gulp-gitshasuffix/examples/gulpfile.js
[gulp] ├── default
[gulp] ├── folder
[gulp] └── folderPrefix

Run example:

$ gulp --gulpfile examples/gulpfile.js
[gulp] Using file /Users/example/gulp-gitshasuffix/examples/gulpfile.js
[gulp] Working directory changed to /Users/example/gulp-gitshasuffix/examples
[gulp] Running 'default'...
[gulp] Finished 'default' in 4.43 ms
New path:  /Users/example/gulp-gitshasuffix/test/fixtures/a-eaa51c.txt
New path:  /Users/example/gulp-gitshasuffix/test/fixtures/b-eaa51c.txt
New path:  /Users/example/gulp-gitshasuffix/test/fixtures/c-eaa51c.txt

0.2.0:

  • Adds possibility to have sha as subfolder instead of suffix

0.1.0:

  • Changes to using options object instead of two parameters on input.

0.0.4:

  • No longer throws unjust error on streamed contents.

MIT License