A plugin for Gulp to suffix files with latest commit sha.
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
lib
test
.editorconfig Initial commit Jan 17, 2014
.gitattributes
.gitignore
.jshintrc
.travis.yml
LICENSE
README.md
index.js Adds support for git-rev-replace Jul 30, 2015
package.json

README.md

gulp-gitshasuffix

NPM version Build Status Dependency Status

gitshasuffix plugin for gulp

Usage

A plugin for Gulp to suffix files with latest commit sha. As of v1.0.0, this plugin works with gulp-rev-replace.

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('./'));
});

API

gitshasuffix(options)

options.length

Type: Integer
Default: 6

Length of the sha to show.

options.separator

Type: String
Default: "-"

Separator before the suffix.

options.folder

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

Examples

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

Changelog

1.0.0:

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.

License

MIT License