Skip to content

Enderchief/esgleam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

esgleam

Package Version Hex Docs

esbuild for Gleam that works on Erlang & JavaScript.

  1. Create a Gleam project as you would normally and make sure you have a file in src with the name of your project (as specified in gleam.toml)

  2. Install esbuild

gleam run -m esgleam/install
gleam run -m esgleam/bundle

See /dist for your bundled code

  1. To start a development server
gleam run -m esgleam/serve

(Follow steps 1-2)

  1. Create /src/build.gleam with the following
import esgleam

pub fn main() {
   esgleam.new("./dist/static")
   |> esgleam.entry("main.gleam")
   |> esgleam.bundle
}

See esgleam for all config options and their default values.

  1. Run your build script
gleam run -m build

Install

Install esbuild.

gleam run -m esgleam/install

Bundle

Bundle the project into a library with src/{project_name}.gleam as your entry point and ./dist/{project_name}.js as your output file.

gleam run -m esgleam/bundle

App

Bundle the project into a single file to run with src/{project_name}.gleam as your entry point and ./dist/{project_name}.js as your output file. Similar to just running gleam run.

gleam run -m esgleam/app

Serve

Starts a dev server, serving the dist directory as /.

gleam run -m esgleam/serve

If available on Hex this package can be added to your Gleam project:

gleam add esgleam

and its documentation can be found at https://hexdocs.pm/esgleam.

Roadmap

  • Create file watcher for *.gleam which runs on both Erlang and JavaScript
  • Fix bug with STDOUT/STDERR not being shown when running esbuild in the erlang target
  • Write tests for config options
  • Add more config options if needed
  • Pseudo-SourceMaps until #1341 merges
  • Consider creating a way to use plugins
  • Hot Module Reloading?????