0.0.3 • Published 4 years ago
gulp-flare v0.0.3
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 or piping:
- 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);
- piping allows you to receive data from other plugins via stream piping (example).
const {createGulpEsbuild} = require('gulp-esbuild')
const gulpEsbuild = createGulpEsbuild({
incremental: true, // enables the esbuild's incremental build
piping: true, // enables piping
})Notice: ⚠️ piping is disabled by default ⚠️
Installation
npm install gulp-esbuildor
yarn add gulp-esbuildExamples
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 = buildpackage.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({
outfile: 'outfile.js',
bundle: true,
}))
.pipe(dest('./dist'))
}
function watchTask() {
watch('./src/index.js', build)
}
exports.watch = watchTaskpackage.json
...
"scripts": {
"watch": "gulp watch"
}
...command line
npm run watchMore examples here
Plugin arguments
| Name | Type | Default |
|---|---|---|
| sourcemap | boolean\|'inline'\|'external'\|'both' | |
| sourceRoot | string | |
| sourcesContent | boolean | |
| legalComments | 'none'\|'inline'\|'eof'\|'linked'\|'external' | |
| format | 'iife'\|'cjs'\|'esm' | |
| globalName | string | |
| target | string | |
| minify | boolean | |
| minifyWhitespace | boolean | |
| minifyIdentifiers | boolean | |
| minifySyntax | boolean | |
| charset | 'ascii'\|'utf8' | |
| treeShaking | boolean | |
| ignoreAnnotations | boolean | |
| jsx | 'transform'\|'preserve' | |
| jsxFactory | string | |
| jsxFragment | string | |
| define | object | |
| pure | string | |
| keepNames | boolean | |
| banner | object | |
| footer | object | |
| color | boolean | |
| logLevel | 'verbose'\|'debug'\|'info'\|'warning'\|'error'\|'silent' | 'silent' |
| logLimit | number | |
| bundle | boolean | |
| splitting | boolean | |
| preserveSymlinks | boolean | |
| outfile | string | |
| metafile | boolean | |
| metafileName | string | 'metafile.json' |
| outdir | string | |
| outbase | string | |
| platform | 'browser'\|'node'\|'neutral' | |
| external | array | |
| loader | object | |
| resolveExtensions | array | |
| mainFields | array | |
| conditions | array | |
| tsconfig | string | |
| outExtension | object | |
| publicPath | string | |
| entryNames | string | |
| chunkNames | string | |
| assetNames | string | |
| inject | array | |
| plugins | array |