gulp-esbuild
v0.15.0
Published
gulp plugin for esbuild bundler
Readme
gulp-esbuild
A gulp plugin for the esbuild bundler.
There are 2 available exports: gulpEsbuild and createGulpEsbuild. In most cases, you should use the gulpEsbuild export. Use the createGulpEsbuild export if you want to enable esbuild's incremental build.
esbuild's incremental build is used together with gulp's watch API and allows you to rebuild only the changed parts of the code (example).
Installation
npm install gulp-esbuild esbuild gulpor
yarn add gulp-esbuild esbuildExamples
Build example
gulpfile.js
const { src, dest } = require('gulp');
const { gulpEsbuild } = require('gulp-esbuild');
function build() {
return src('./index.tsx')
.pipe(
gulpEsbuild({
entryPoints: ['index.tsx'],
outfile: 'bundle.js',
bundle: true,
loader: {
'.tsx': 'tsx',
},
}),
)
.pipe(dest('./dist'));
}
exports.build = build;package.json
...
"scripts": {
"build": "gulp build"
}
...command line
npm run buildWatch 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({
entryPoints: ['src/index.js'],
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 watchMore examples here
Plugin arguments
| Name | Type | Default |
| ---------------------------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------- |
| entryPoints | array\|object | |
| sourcemap | boolean\|'linked'\|'inline'\|'external'\|'both' | |
| sourceRoot | string | |
| sourcesContent | boolean | |
| legalComments | 'none'\|'inline'\|'eof'\|'linked'\|'external' | |
| format | 'iife'\|'cjs'\|'esm' | |
| globalName | string | |
| target | string\|array | |
| supported | object | |
| mangleProps | RegExp | |
| reserveProps | RegExp | |
| mangleQuoted | boolean | |
| mangleCache | object | |
| drop | array | |
| dropLabels | array | |
| minify | boolean | |
| minifyWhitespace | boolean | |
| minifyIdentifiers | boolean | |
| minifySyntax | boolean | |
| lineLimit | number | |
| charset | 'ascii'\|'utf8' | |
| treeShaking | boolean | |
| ignoreAnnotations | boolean | |
| jsx | 'transform'\|'preserve'\|'automatic' | |
| jsxFactory | string | |
| jsxFragment | string | |
| jsxImportSource | string | |
| jsxDev | boolean | |
| jsxSideEffects | boolean | |
| define | object | |
| pure | array | |
| keepNames | boolean | |
| absPaths | array | |
| banner | object | |
| footer | object | |
| color | boolean | |
| logLevel | 'verbose'\|'debug'\|'info'\|'warning'\|'error'\|'silent' | 'silent' |
| logLimit | number | |
| logOverride | object | |
| tsconfigRaw | string|object | |
| bundle | boolean | |
| splitting | boolean | |
| preserveSymlinks | boolean | |
| outfile | string | |
| metafile | boolean | |
| metafileName | string | 'metafile.json' |
| outdir | string | |
| outbase | string | |
| platform | 'browser'\|'node'\|'neutral' | |
| external | array | |
| packages | 'bundle'\|'external' | |
| alias | object | |
| loader | object | |
| resolveExtensions | array | ['.tsx', '.ts', '.jsx', '.js', '.css', '.json'] |
| mainFields | array | |
| conditions | array | |
| nodePaths | array | |
| tsconfig | string | |
| outExtension | object | |
| publicPath | string | |
| entryNames | string | |
| chunkNames | string | |
| assetNames | string | |
| inject | array | |
| plugins | array | |
