Parse build blocks in HTML files to replace references and automatically upload to qiniu cdn.
Inspired by grunt-useref and gulp-useref. It can handle file concatenation but not minification. And it can upload the concatenated file to cdn automatically. Files are then passed down the stream. For minification of assets or other modifications, use gulp-if to conditionally handle specific types of assets.
Note: lot of code from gulp-useref.
gulp-useref doesn't apply a way to manage html file analysis or a callback after html file analysis. This is why I don't make
gulp-useref as lib dependency and rewrite based on it.
Install with npm
npm install --save-dev gulp-useref-cdn
The following example will parse the build blocks in the HTML, replace them, upload to cdn, and pass those files through. Assets inside the build blocks will be concatenated and passed through in a stream as well.
var gulp =useref = ;gulp;
More details: https://github.com/jonkemp/gulp-useref. All
gulp-useref's syntax and usage are supported by
What's important here is that an extended syntax/usage is added!
<!-- build:<type>(alternate search path) <path> <attrs> -->
Before, type could be either
remove. And the new
cdn is added now.
When you use
cdn as the type, no need to write
css anymore. The plugin will detect it automatically, and it will do the work as expected when you use
And with the
cdn type, the plugin will upload the concatenated file to
An example of this in completed form can be seen below:
<!-- build:cdn css/combined.css --><!-- endbuild --><!-- build:cdn scripts/combined.js <bucket='xxx'> <key='yyy'>--><!-- endbuild -->
;let assets = cdn;gulp;
The resulting HTML would be:
And you will see
combined-f9ebd308.css in your qiniu cdn's bucket.
Returns a stream with the asset replaced resulting HTML files. Supports all options from useref.
Returns a stream with the concatenated asset files from the build blocks inside the HTML.
Specify the location to search for asset files, relative to the current working directory. Can be a string or array of strings.
Skip concatenation and add all assets to the stream instead.
false if you want to see messages except error.
The above two are all about
Key is defined by Qiniu. Key can be set clearly via
<key='yyy'> in comment.
key is not offered, plugin will generate the
prefix + filename + '-' + md5 + '.' + filetype;
md5--- the md5 string of the file,
options.md5specify md5's length(after cut).
filetypeare offered by plugin.
Brings back the previously filtered out HTML files.
Copyright (c) 2015 creeperyang. Licensed under the MIT license.