Skip to content

ws-perelyaynen/gulp-gitshasuffix

 
 

Repository files navigation

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 i --save-dev https://github.com/ws-perelyaynen/gulp-gitshasuffix.git

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.manifest

Type: String Default: "./manifest.json"

creates manifest file with all renames Useful for templating (for example Jade or Pug)

{"path/to/file.ext" : "path/to/file-hash.ext"}

options.trimRelatedPath

Type: String Default: ''

trim related path, useful when Jade template placed in subfolder options.manifest is required Useful for templating (for example Jade or Pug)

{"path/to/file.ext" : "path/to/file-hash.ext"}

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%