
Security News
AGENTS.md Gains Traction as an Open Format for AI Coding Agents
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.
parsec-gulp-rev
Advanced tools
Static asset revisioning by appending content hash to filenames: unicorn.css => unicorn.css?v=84bd1b9a2c
Static asset revisioning by appending content hash to filenames
unicorn.css
→unicorn.css?v=d41d8cd98f
Make sure to set the files to never expire for this to have an effect.
Want to strengthen your core JavaScript skills and master ES6?
I would personally recommend this awesome ES6 course by Wes Bos.
$ npm install --save-dev parsec-gulp-rev
var gulp = require('gulp');
var rev = require('parsec-gulp-rev');
gulp.task('default', function () {
return gulp.src('src/*.css')
.pipe(rev())
.pipe(gulp.dest('dist'));
});
Type: string
Default: "rev-manifest.json"
Manifest file path.
Type: string
Default: process.cwd()
Override the base
of the manifest file.
Type: string
Default: process.cwd()
Override the cwd
(current working directory) of the manifest file.
Type: boolean
Default: false
Merge existing manifest file.
Type: object
Default: JSON
An object with parse
and stringify
methods. This can be used to provide a
custom transformer instead of the default JSON
for the manifest file.
Original file paths are stored at file.revOrigPath
. This could come in handy for things like rewriting references to the assets.
The hash of each rev'd file is stored at file.revHash
. You can use this for customizing the file renaming, or for building different manifest formats.
var gulp = require('gulp');
var rev = require('parsec-gulp-rev');
gulp.task('default', function () {
// by default, gulp would pick `assets/css` as the base,
// so we need to set it explicitly:
return gulp.src(['assets/css/*.css', 'assets/js/*.js'], {base: 'assets'})
.pipe(gulp.dest('build/assets')) // copy original assets to build dir
.pipe(rev())
.pipe(gulp.dest('build/assets')) // write rev'd assets to build dir
.pipe(rev.manifest())
.pipe(gulp.dest('build/assets')); // write manifest to build dir
});
An asset manifest, mapping the original paths to the revisioned paths, will be written to build/assets/rev-manifest.json
:
{
"css/unicorn.css": "css/unicorn.css?v=d41d8cd98f",
"js/unicorn.js": "js/unicorn.js?v=273c2cin3f"
}
By default, rev-manifest.json
will be replaced as a whole. To merge with an existing manifest, pass merge: true
and the output destination (as base
) to rev.manifest()
:
var gulp = require('gulp');
var rev = require('parsec-gulp-rev');
gulp.task('default', function () {
// by default, gulp would pick `assets/css` as the base,
// so we need to set it explicitly:
return gulp.src(['assets/css/*.css', 'assets/js/*.js'], {base: 'assets'})
.pipe(gulp.dest('build/assets'))
.pipe(rev())
.pipe(gulp.dest('build/assets'))
.pipe(rev.manifest({
base: 'build/assets',
merge: true // merge with the existing manifest (if one exists)
}))
.pipe(gulp.dest('build/assets'));
});
You can optionally call rev.manifest('manifest.json')
to give it a different path or filename.
gulp-concat
Because of the way gulp-concat
handles file paths, you may need to set cwd
and path
manually on your gulp-concat
instance to get everything to work correctly:
var gulp = require('gulp');
var rev = require('parsec-gulp-rev');
var sourcemaps = require('gulp-sourcemaps');
var concat = require('gulp-concat');
gulp.task('default', function () {
return gulp.src('src/*.js')
.pipe(sourcemaps.init())
.pipe(concat({path: 'bundle.js', cwd: ''}))
.pipe(rev())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('dist'));
This plugin does not support streaming. If you have files from a streaming source, such as browserify, you should use gulp-buffer before parsec-gulp-rev
in your pipeline:
var gulp = require('gulp');
var browserify = require('browserify');
var source = require('vinyl-source-stream');
var buffer = require('gulp-buffer');
var rev = require('parsec-gulp-rev');
gulp.task('default', function () {
return browserify('src/index.js')
.bundle({debug: true})
.pipe(source('index.min.js'))
.pipe(buffer())
.pipe(rev())
.pipe(gulp.dest('dist'))
});
For more info on how to integrate parsec-gulp-rev into your app, have a look at the integration guide.
MIT © Sindre Sorhus
FAQs
Static asset revisioning by appending content hash to filenames: unicorn.css => unicorn.css?v=84bd1b9a2c
The npm package parsec-gulp-rev receives a total of 0 weekly downloads. As such, parsec-gulp-rev popularity was classified as not popular.
We found that parsec-gulp-rev demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.