Go to file
2024-10-09 16:53:35 -04:00
cmd/esr first 2024-10-09 14:22:28 -04:00
internal yep 2024-10-09 16:53:35 -04:00
go.mod first 2024-10-09 14:22:28 -04:00
go.sum first 2024-10-09 14:22:28 -04:00
Makefile first 2024-10-09 14:22:28 -04:00
README.md yep 2024-10-09 16:53:35 -04:00


                           ░▒▓████████▓▒░░▒▓███████▓▒░▒▓███████▓▒░
                           ░▒▓█▓▒░      ░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░
                           ░▒▓█▓▒░      ░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░
                           ░▒▓██████▓▒░  ░▒▓██████▓▒░░▒▓███████▓▒░
                           ░▒▓█▓▒░             ░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░
                           ░▒▓█▓▒░             ░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░
                           ░▒▓████████▓▒░▒▓███████▓▒░░▒▓█▓▒░░▒▓█▓▒░

esr

This is a simple esbuild-powered dev server. It has livereloading. It's fast. It's configured with YAML.

Example configuration

# Defaults
bundle: true
platform: browser # browser | node
format: esm # esm | cjs | iife
outdir: public
minify: false
minifyWhitespace: false
minifyIdentifiers: false
sourcemap: true

# Optional. Applies to `--serve`, or `--run --watch`.
# Files that match these paths trigger reload or rerun when they are changed.
watch:
  paths: ['src/**/*.{ts,tsx,css}', 'public/index.html']

# Each mode inherits from the configuration above, but can
# override certain options as needed.
serve:
  html: public/index.html
  port: 1234

# When building, you might want to override some of the defaults
build:
  minify: true
  minifyWhitespace: true
  minifyIdentifiers: true
  sourcemap: false

run:
  # For example: <runtime> <outfile>
  runtime: bun # node | bun | ??

jsx: automatic
jsxFactory: React.createElement

# By default, loader is undefined.
# You can define loaders with the `loader` property, like this:
loader:
  .js: jsx
  .ts: tsx

When serving an index.html, you can use {{ livereload }} to inject the livereload EventSource logic, and {{ js }} and {{ css }} to inject tags for built assets.

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Application</title>
  {{ css }}
</head>

<body>
  <div id="app"></div>
  {{ livereload }}
  {{ js }}
</body>

</html>