mirror of
https://github.com/zhigang1992/esbuild.git
synced 2026-01-12 22:46:54 +08:00
72 lines
2.0 KiB
Go
72 lines
2.0 KiB
Go
// This API exposes the command-line interface for esbuild. It can be used to
|
|
// run esbuild from Go without the overhead of creating a child process.
|
|
//
|
|
// Example usage:
|
|
//
|
|
// package main
|
|
//
|
|
// import (
|
|
// "os"
|
|
//
|
|
// "github.com/evanw/esbuild/pkg/cli"
|
|
// )
|
|
//
|
|
// func main() {
|
|
// os.Exit(cli.Run(os.Args[1:]))
|
|
// }
|
|
//
|
|
package cli
|
|
|
|
import (
|
|
"github.com/evanw/esbuild/pkg/api"
|
|
)
|
|
|
|
// This function invokes the esbuild CLI. It takes an array of command-line
|
|
// arguments (excluding the executable argument itself) and returns an exit
|
|
// code. There are some minor differences between this CLI and the actual
|
|
// "esbuild" executable such as the lack of auxiliary flags (e.g. "--help" and
|
|
// "--version") but it is otherwise exactly the same code.
|
|
func Run(osArgs []string) int {
|
|
return runImpl(osArgs)
|
|
}
|
|
|
|
// This parses an array of strings into an options object suitable for passing
|
|
// to "api.Build()". Use this if you need to reuse the same argument parsing
|
|
// logic as the esbuild CLI.
|
|
//
|
|
// Example usage:
|
|
//
|
|
// options, err := cli.ParseBuildOptions([]string{
|
|
// "input.js",
|
|
// "--bundle",
|
|
// "--minify",
|
|
// })
|
|
//
|
|
// result := api.Build(options)
|
|
//
|
|
func ParseBuildOptions(osArgs []string) (options api.BuildOptions, err error) {
|
|
options = newBuildOptions()
|
|
err = parseOptionsImpl(osArgs, &options, nil)
|
|
return
|
|
}
|
|
|
|
// This parses an array of strings into an options object suitable for passing
|
|
// to "api.Transform()". Use this if you need to reuse the same argument
|
|
// parsing logic as the esbuild CLI.
|
|
//
|
|
// Example usage:
|
|
//
|
|
// options, err := cli.ParseTransformOptions([]string{
|
|
// "--minify",
|
|
// "--loader=tsx",
|
|
// "--define:DEBUG=false",
|
|
// })
|
|
//
|
|
// result := api.Transform(input, options)
|
|
//
|
|
func ParseTransformOptions(osArgs []string) (options api.TransformOptions, err error) {
|
|
options = newTransformOptions()
|
|
err = parseOptionsImpl(osArgs, nil, &options)
|
|
return
|
|
}
|