1. gulp-plugin-extras
Useful utilities for creating Gulp plugins
gulp-plugin-extras
Package: gulp-plugin-extras
Created by: sindresorhus
Last modified: Thu, 02 May 2024 14:52:49 GMT
Version: 1.0.0
License: MIT
Downloads: 121,508
Repository: https://github.com/sindresorhus/gulp-plugin-extras

Install

npm install gulp-plugin-extras
yarn add gulp-plugin-extras

gulp-plugin-extras

Useful utilities for creating Gulp plugins

Install

 npm install gulp-plugin-extras

Usage

 import {gulpPlugin} from 'gulp-plugin-extras';

export default function gulpFoo() {
	return gulpPlugin('gulp-foo', async file => {
		file.contents = await someKindOfTransformation(file.contents);
		return file;
	});
}

API

gulpPlugin(name, onFile, options?)

Create a Gulp plugin.

If you throw an error with a .isPresentable = true property, it will not display the error stack.

This does not support streaming unless you enable the supportsAnyType option.

name

Type: string

The plugin name.

onFile

Type: async (file) => file

The async function called for each Vinyl file in the stream. Must return a modified or new Vinyl file.

options

Type: object

supportsDirectories

Type: boolean
Default: false

Whether the plugin can handle directories.

supportsAnyType

Type: boolean
Default: false

Whether the plugin can handle any Vinyl file type.

Useful for custom type filtering.

Supersedes supportsDirectories.

onFinish

Type: async function * (stream: NodeJS.ReadableStream): void

An async generator function executed for finalization after all files have been processed.

You can yield more files from it if needed.

 import {gulpPlugin} from 'gulp-plugin-extras';

export default function gulpFoo() {
	return gulpPlugin(
		'gulp-foo',
		async file => { … },
		{
			async * onFinish() {
				yield someVinylFile;
				yield someVinylFile2;
			}
		}
	);
}

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code