gulp-replace-md5
A gulp plugin to replace static file url with file-md5.
Usage
var gulp = require("gulp"),
gulpReplaceMd5 = require("gulp-replace-md5");
gulp.task("replaceMd5", function() {
return gulp.src("../html/**")
.pipe(gulpReplaceMd5( options ) )
.pipe(gulp.dest("./output"));
});
Before the html is like this.
<!doctype html>
<head>
<link rel="stylesheet" type="text/css" href="{{../css/hello.css}}" />
</head>
<body>
<script src="{{../js/hello.js}}"></script>
</body>
</html>
After replacement, the html is like this.
<!doctype html>
<head>
<link rel="stylesheet" type="text/css" href="../css/hello_7df0asdf3.css" />
</head>
<body>
<script src="../js/hello_8df7asdf9.js"></script>
</body>
</html>
gulpReplaceMd5([options])
Options
openTag
default {{
.closeTag
default }}
. Only those surrounded with openTag
and closeTag
will be replaced.
<!doctype html>
<head>
<title></title>
<link href="{{../css/hello.css}}" type="text/css" rel="stylesheet"/>
</head>
<body>
<script src="{{../js/hello.js}}" ></script>
<script src="../js/world.js" ></script>
</body>
</html>
hashFunction
You can define the hashFunction yourself. Currently, the hashFunction
is listed below.
you can redefined it according to your demands.
function(filename) {
return function(content) {
return filename.split('.').map(function(item, i, arr) {
return i == arr.length - 2 ? item + '_' + calcMd5(content) : item;
}).join('.');
}
}
staticHash
Optional. Sometimes, you want to designate some url's corresponding urls. Use this.
{
"../js/a.js": "../js/a_md5ed.js",
"../js/b.js": "../js/b_md5ed.js",
"../css/a.css": "../css/a_md5ed.css",
"../css/b.css": "../css/b_md5ed.css"
}
-
base
defaut ''. If there are absolute path in your html or other files. base
must be set.
-
staticPrefix
, you can add staticPrefix
before your static files.