Change permissions of Vinyl files
npm install --save-dev gulp-chmod
import gulp from 'gulp';
import chmod from 'gulp-chmod';
export default () => (
gulp.src('src/app.js')
.pipe(chmod(0o755))
.pipe(gulp.dest('dist'))
);
or
import gulp from 'gulp';
import chmod from 'gulp-chmod';
export default () => (
gulp.src('src/app.js')
.pipe(chmod({
owner: {
read: true,
write: true,
execute: true
},
group: {
execute: true
},
others: {
execute: true
}
}))
.pipe(gulp.dest('dist'))
);
Type: number | object
Can either be a chmod octal number or an object with the individual permissions specified.
Values depends on the current file, but these are the possible keys:
{
owner: {
read: true,
write: true,
execute: true
},
group: {
read: true,
write: true,
execute: true
},
others: {
read: true,
write: true,
execute: true
}
}
When read
, write
, and execute
are the same, you can simplify the object:
{
read: true
}
Pass undefined
to not set permissions on files. Useful if you only want to set permissions on directories.
Type: true | number | object
Same as fileMode
, but applies to directories.
Specify true
to use the same value as fileMode
.
Combine it with gulp-filter to only change permissions on a subset of the files.
import gulp from 'gulp';
import chmod from 'gulp-chmod';
import gulpFilter from 'gulp-filter';
const filter = gulpFilter('src/cli.js', {restore: true});
export default = () => (
gulp.src('src/*.js')
// Filter a subset of the files
.pipe(filter)
// Make them executable
.pipe(chmod(0o755))
// Bring back the previously filtered out files
.pipe(filter.restore)
.pipe(gulp.dest('dist'))
);
- gulp-chown - Change owner of Vinyl files