esgleam

Types

Config for esbuild

pub type Config {
  Config(
    autoinstall: Bool,
    outdir: String,
    entry_points: List(String),
    format: Format,
    kind: Kind,
    minify: Bool,
    target: List(String),
    serve: option.Option(String),
    sourcemap: Bool,
    platform: option.Option(Platform),
    watch: Bool,
    raw: String,
  )
}

Constructors

  • Config(
      autoinstall: Bool,
      outdir: String,
      entry_points: List(String),
      format: Format,
      kind: Kind,
      minify: Bool,
      target: List(String),
      serve: option.Option(String),
      sourcemap: Bool,
      platform: option.Option(Platform),
      watch: Bool,
      raw: String,
    )

    Arguments

    autoinstall

    If true, automatically install esbuild if has not been installed (needs Erlang installed) default True.

    outdir

    Output directory

    entry_points

    List of entry points supplied

    format

    Output format for JavaScript. See Format default Esm

    kind

    Kind for output default Library

    minify

    default False

    target

    List of target environments default []

    serve

    The root directory for the dev server (run server when defined) default None

    sourcemap

    Generate sourcemap for JavaScript default False

    platform

    Platform for the output See esbuild/platform for what each type does default Neutral

    watch

    Enable watchmode. Bundles files on change Note: gleam build need to be run manually default False

    raw

    raw flags to pass to esbuild default ""

Output format of generated JavaScript

pub type Format {
  Esm
  Cjs
  Iife
}

Constructors

  • Esm

    ECMAScript module

  • Cjs

    CommonJS

  • Iife

    immediately-invoked function expression

Kind of output

pub type Kind {
  Script
  Library
}

Constructors

  • Script

    Executes the main() function in your entry point

  • Library

    Only exports the code

pub type Platform {
  Neutral
  Browser
  Node
}

Constructors

  • Neutral

    Build platform independed code

  • Browser

    Build browser compatable code (default)

  • Node

    Build for Node

Values

pub fn autoinstall(config: Config, do_install: Bool) -> Config

Boolean for autoinstalling esbuild if it is not found. If True, requires erlang to be install on the system.

pub fn bundle(config: Config) -> Result(Result(Nil, a), String)

Executes esbuild with the provided config parsed as CLI arguments.

pub fn entry(config: Config, path: String) -> Config

Entry points Can be use multiple times

pub fn format(config: Config, format: Format) -> Config

Output format. see Format

pub fn kind(config: Config, kind: Kind) -> Config

Kind for output. see Kind if set to Script, will ignore all entries except the first and will call its main function.

pub fn minify(config: Config, do_minify: Bool) -> Config

Create minified JavaScript

pub fn new(outdir path: String) -> Config

Start to create a build script

> esbuild.new("./dist/static")
Config("./dist/static", ...)
pub fn platform(
  config: Config,
  platform platform: Platform,
) -> Config

Generate code for a specified platform

pub fn raw(config: Config, args: String) -> Config

Raw CLI argument to pass to esbuild

pub fn serve(config: Config, dir path: String) -> Config

Start a development server on http://127.0.0.1:8000 with path being /

pub fn target(config: Config, target: String) -> Config

Target for transpiled JavaScript. Can be used mutiple times

> esbuild.new("./dist/static")
> |> esbuild.target("es2020")
> |> esbuild.target("firefox110")
> |> esbuild.target("edge90")
pub fn watch(config: Config, do_watch: Bool) -> Config

Note: There is no file watcher for Gleam files so you have to manually run gleam build on change.

pub fn watch_gleam() -> fn() -> Nil
Search Document