Plugin to spawn a CLI program for piping with gulp. Uses spawn.
gulp-spawn options follow
child_process.spawn
conventions.
Not all CLI programs support piping. In fact, many newer ones don't. Some programs require that you pass certain arguments if you intend to use stdin and/or stdout. Please check the documentation of the program you intend to use to ensure piping is supported.
The following example pipes image files to ImageMagick's convert
. In the case
of convert
, you must specify a -
before arguments and after arguments if
you wish to use stdin and stdout, respectively.
import spaw from "gulp-spawn";
// example using ImageMagick's convert
// setting "buffer: false" optional but recommended for heavy I/O
gulp
.src("./src/images/*.{jpg,png,gif}", { buffer: false })
.pipe(
spawn({
cmd: "convert",
args: ["-", "-resize", "50%", "-"],
// optional
opts: { cwd: "." },
filename: function (base, ext) {
return base + "-half" + ext;
},
})
)
.pipe(gulp.dest("./dist/images/"));
If you write spawn programs please consider taking the time to support stdin & stdout. Piping is one of the many reasons UNIX systems have endured the test of time.