npm.devtool.tech
👏 You can access gulp-esbuild package with using gulpEsbuild variable in browser devtools!
gulp plugin for esbuild bundler

basic

package
Npm Version
Node Version

popularity

Star
Npm Weekly Downloads
Jsdeliver Month Downloads
Dependents Pkg
Dependents Repo

size

Code Size
Publish Size
Install Size
Minified Size
Gzip Size

quality

Open Issues
Tree Shaking Support
Type Support
Last Commit

health

Package health
Dependency Count
Outdated Dep
Vulnerablities

downloads per month

gulp-esbuild

A gulp plugin for the esbuild bundler.

There are two exports available: gulpEsbuild and createGulpEsbuild. In most cases you should use the gulpEsbuild export. Use the createGuipEsbuild export if you want to enable the esbuild's incremental build. The esbuild's incremental build is used with the gulp's watching files API and allows you to rebuild only changed parts of code (example);

const {createGulpEsbuild} = require('gulp-esbuild')
const gulpEsbuild = createGulpEsbuild({
	incremental: true, // enables the esbuild's incremental build
})

⚠️ Notice ⚠️

Esbuild doesn't fully support working with the virtual files which gulp send when you use: src(...).pipe(gulpEsbuild(...)). We found workaround using some tricks, but one limitation still remains. Every file you send via src(...) must exist in the file system. Its contents are not important, since they will be taken from the virtual file. But existence in the file system is required.

Installation

npm install gulp-esbuild esbuild

or

yarn add gulp-esbuild esbuild

Examples

build example

gulpfile.js

const {
    src,
    dest,
} = require('gulp')
const gulpEsbuild = require('gulp-esbuild')

function build() {
    return src('./index.tsx')
        .pipe(gulpEsbuild({
            outfile: 'bundle.js',
            bundle: true,
            loader: {
                '.tsx': 'tsx',
            },
        }))
        .pipe(dest('./dist'))
}

exports.build = build

package.json

...
"scripts": {
    "build": "gulp build"
}
...

command line

npm run build

watch mode example

gulpfile.js

const {
    src,
    dest,
    watch,
} = require('gulp')
const {createGulpEsbuild} = require('gulp-esbuild')
const gulpEsbuild = createGulpEsbuild({ incremental: true })

function build() {
    return src('./src/index.js')
        .pipe(gulpEsbuild({
            outfile: 'outfile.js',
            bundle: true,
        }))
        .pipe(dest('./dist'))
}

function watchTask() {
    watch('./src/index.js', build)
}

exports.watch = watchTask

package.json

...
"scripts": {
    "watch": "gulp watch"
}
...

command line

npm run watch

More examples here

Plugin arguments

NameTypeDefault
sourcemapboolean|'linked'|'inline'|'external'|'both'
sourceRootstring
sourcesContentboolean
legalComments'none'|'inline'|'eof'|'linked'|'external'
format'iife'|'cjs'|'esm'
globalNamestring
targetstring
supportedobject
manglePropsRegExp
reservePropsRegExp
mangleQuotedboolean
mangleCacheobject
drop'console'|'debugger'
dropLabelsarray
minifyboolean
minifyWhitespaceboolean
minifyIdentifiersboolean
minifySyntaxboolean
lineLimitnumber
charset'ascii'|'utf8'
treeShakingboolean
ignoreAnnotationsboolean
jsx'transform'|'preserve'|'automatic'
jsxFactorystring
jsxFragmentstring
jsxImportSourcestring
jsxDevboolean
jsxSideEffectsboolean
defineobject
purearray
keepNamesboolean
bannerobject
footerobject
colorboolean
logLevel'verbose'|'debug'|'info'|'warning'|'error'|'silent''silent'
logLimitnumber
logOverrideobject
tsconfigRawstring|object
bundleboolean
splittingboolean
preserveSymlinksboolean
outfilestring
metafileboolean
metafileNamestring'metafile.json'
outdirstring
outbasestring
platform'browser'|'node'|'neutral'
externalarray
packages'external'
aliasobject
loaderobject
resolveExtensionsarray
mainFieldsarray
conditionsarray
tsconfigstring
outExtensionobject
publicPathstring
entryNamesstring
chunkNamesstring
assetNamesstring
injectarray
pluginsarray