Documentation
¶
Overview ¶
This API exposes esbuild's two main operations: building and transforming. It's intended for integrating esbuild into other tools as a library.
If you are just trying to run esbuild from Go without the overhead of creating a child process, there is also an API for the command-line interface itself: https://godoc.org/github.com/evanw/esbuild/pkg/cli.
Build API ¶
This function runs an end-to-end build operation. It takes an array of file paths as entry points, parses them and all of their dependencies, and returns the output files to write to the file system. The available options roughly correspond to esbuild's command-line flags.
Example usage:
package main
import (
"os"
"github.com/evanw/esbuild/pkg/api"
)
func main() {
result := api.Build(api.BuildOptions{
EntryPoints: []string{"input.js"},
Outfile: "output.js",
Bundle: true,
Write: true,
LogLevel: api.LogLevelInfo,
})
if len(result.Errors) > 0 {
os.Exit(1)
}
}
Transform API ¶
This function transforms a string of source code into JavaScript. It can be used to minify JavaScript, convert TypeScript/JSX to JavaScript, or convert newer JavaScript to older JavaScript. The available options roughly correspond to esbuild's command-line flags.
Example usage:
package main
import (
"fmt"
"os"
"github.com/evanw/esbuild/pkg/api"
)
func main() {
jsx := `
import * as React from 'react'
import * as ReactDOM from 'react-dom'
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('root')
);
`
result := api.Transform(jsx, api.TransformOptions{
Loader: api.LoaderJSX,
})
fmt.Printf("%d errors and %d warnings\n",
len(result.Errors), len(result.Warnings))
os.Stdout.Write(result.Code)
}
Index ¶
- type BuildOptions
- type BuildResult
- type Charset
- type Engine
- type EngineName
- type Format
- type Loader
- type Location
- type LogLevel
- type Message
- type OnLoadArgs
- type OnLoadOptions
- type OnLoadResult
- type OnResolveArgs
- type OnResolveOptions
- type OnResolveResult
- type OutputFile
- type Platform
- type Plugin
- type PluginBuild
- type ServeOnRequestArgs
- type ServeOptions
- type ServeResult
- type SourceMap
- type SourcesContent
- type StderrColor
- type StdinOptions
- type Target
- type TransformOptions
- type TransformResult
- type TreeShaking
- type WatchMode
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BuildOptions ¶
type BuildOptions struct {
Color StderrColor
ErrorLimit int
LogLevel LogLevel
Sourcemap SourceMap
SourcesContent SourcesContent
Target Target
Engines []Engine
MinifyWhitespace bool
MinifyIdentifiers bool
MinifySyntax bool
Charset Charset
TreeShaking TreeShaking
JSXFactory string
JSXFragment string
Define map[string]string
Pure []string
AvoidTDZ bool
KeepNames bool
GlobalName string
Bundle bool
Splitting bool
Outfile string
Metafile string
Outdir string
Outbase string
AbsWorkingDir string
Platform Platform
Format Format
External []string
MainFields []string
Loader map[string]Loader
ResolveExtensions []string
Tsconfig string
OutExtensions map[string]string
PublicPath string
Inject []string
Banner string
NodePaths []string // The "NODE_PATH" variable from Node.js
EntryPoints []string
Stdin *StdinOptions
Write bool
Incremental bool
Plugins []Plugin
Watch *WatchMode
}
type BuildResult ¶
type BuildResult struct {
Errors []Message
Warnings []Message
OutputFiles []OutputFile
Rebuild func() BuildResult // Only when "Incremental: true"
Stop func() // Only when "Watch: true"
}
func Build ¶
func Build(options BuildOptions) BuildResult
type Engine ¶ added in v0.5.25
type Engine struct {
Name EngineName
Version string
}
type EngineName ¶ added in v0.5.25
type EngineName uint8
const ( EngineChrome EngineName = iota EngineEdge EngineFirefox EngineIOS EngineNode EngineSafari )
type OnLoadArgs ¶ added in v0.8.1
type OnLoadOptions ¶ added in v0.8.1
type OnLoadResult ¶ added in v0.8.1
type OnResolveArgs ¶ added in v0.8.1
type OnResolveOptions ¶ added in v0.8.1
type OnResolveResult ¶ added in v0.8.1
type OutputFile ¶
type Plugin ¶ added in v0.8.1
type Plugin struct {
Name string
Setup func(PluginBuild)
}
type PluginBuild ¶ added in v0.8.1
type PluginBuild interface {
OnResolve(options OnResolveOptions, callback func(OnResolveArgs) (OnResolveResult, error))
OnLoad(options OnLoadOptions, callback func(OnLoadArgs) (OnLoadResult, error))
}
type ServeOnRequestArgs ¶ added in v0.8.12
type ServeOptions ¶ added in v0.8.12
type ServeOptions struct {
Port uint16
Host string
OnRequest func(ServeOnRequestArgs)
}
type ServeResult ¶ added in v0.8.12
func Serve ¶ added in v0.8.12
func Serve(serveOptions ServeOptions, buildOptions BuildOptions) (ServeResult, error)
type SourcesContent ¶ added in v0.8.27
type SourcesContent uint8
const ( SourcesContentInclude SourcesContent = iota SourcesContentExclude )
type StderrColor ¶
type StderrColor uint8
const ( ColorIfTerminal StderrColor = iota ColorNever ColorAlways )
type StdinOptions ¶ added in v0.6.1
type TransformOptions ¶
type TransformOptions struct {
Color StderrColor
ErrorLimit int
LogLevel LogLevel
Sourcemap SourceMap
SourcesContent SourcesContent
Target Target
Format Format
GlobalName string
Engines []Engine
MinifyWhitespace bool
MinifyIdentifiers bool
MinifySyntax bool
Charset Charset
TreeShaking TreeShaking
JSXFactory string
JSXFragment string
TsconfigRaw string
Banner string
Define map[string]string
Pure []string
AvoidTDZ bool
KeepNames bool
Sourcefile string
Loader Loader
}
type TransformResult ¶
func Transform ¶
func Transform(input string, options TransformOptions) TransformResult
type TreeShaking ¶ added in v0.8.10
type TreeShaking uint8
const ( TreeShakingDefault TreeShaking = iota TreeShakingIgnoreAnnotations )
type WatchMode ¶ added in v0.8.38
type WatchMode struct {
SpinnerBusy string
SpinnerIdle []string
OnRebuild func(BuildResult)
}