Skip to content
/ bun-boilerplate Public template

Minimalistic boilerplate to quick-start Bun.js development in TypeScript πŸš€

License

Notifications You must be signed in to change notification settings

RajaRakoto/bun-boilerplate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

72 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

bun-boilerplate πŸš€

forthebadge forthebadge forthebadge forthebadge forthebadge

Git Gitub

Developer Ready: A comprehensive template. Works out of the box for most Bun.js projects. This project is intended to be used with the latest active LTS release of Bun.js.

Instant Value - All basic tools included and configured:

  • πŸš€ Typescript >= 5.3
  • πŸ§… Bun.js >= 1.0.26
  • πŸ§… Use Bun as package manager
  • 🌈 ESM
  • πŸ§ͺ Biome for code formatting and linting
  • βœ… Jest or Bun test for fast unit testing and code coverage
  • πŸ“š Type definitions for Bun.js and Jest
  • βš™οΈ EditorConfig for consistent coding style
  • πŸ“¦ NPM scripts for common operations
  • πŸ› οΈ Example configuration for GitHub Actions
  • πŸ“ Simple example of TypeScript code and unit test
  • πŸ— Run tasks with Grunt (example for backup)
  • πŸš„ Build faster
  • πŸ–₯️ Ungit for version control (git) with a GUI
  • πŸ“˜ Runtime library for TypeScript helpers with tslib
  • πŸ—ƒοΈ Utility functions for working with ts-api-utils

πŸ“Œ Usage

To use this template, use the following commands:

bun create github.com/RajaRakoto/bun-boilerplate <project-name>
cd <project-name>
bun run pkg-upgrade # to upgrade outdated dependencies in interactive mode

NOTE 1: I employ the MIT license for this starter kit, which includes my name and GitHub profile. Please remember to adjust or remove it if deemed unnecessary.

NOTE 2: In order to help you better understand the structure of this boilerplate, there is a README.md file in each subdirectory of src.

NOTE 3: For certain configurations in the package.json file, you need to modify them to tailor them to your project (e.g: name, description, author, keywords, main, repository, ...).


πŸ“Œ NPM Scripts

Start

  • πŸ“œ start - Run your application with bun.
  • πŸ“œ start:smol - Run your application with bun and a flag which configures the JavaScriptCore heap size to be smaller and grow slower.
  • πŸ“œ start:bin - Run your standalone binary app.

Clean

  • πŸ“œ clean - Remove coverage data, prod, build.

Development

  • πŸ“œ dev - Launch your application in development mode with bun.
  • πŸ“œ dev:watch - Interactive watch mode to automatically transpile source files with bun in development.
  • πŸ“œ dev:hot - Hot reloading of source files with bun in development.
  • πŸ“œ dev:smol:watch - Interactive watch mode to automatically transpile source files with bun in development, while using --smol flag.
  • πŸ“œ dev:smol:hot - Hot reloading source files with bun in development, while using --smol flag.

Build

  • πŸ“œ build - Transpile and bundle source files with bun.
  • πŸ“œ build:watch - Interactive watch mode to automatically transpile source files with bun.
  • πŸ“œ build:bin - bun's bundler implements a --compile flag for generating a standalone binary from a TypeScript or JavaScript file, use this in your production environment to ensure optimal execution of your app.

Testing

  • πŸ“œ test - Run bun test.
  • πŸ“œ test:watch - Interactive watch mode to automatically re-run tests with bun.

Linting and Formatting

  • πŸ“œ biome:start - Starts the Biome daemon server. You can specify a custom configuration file path using the --config-path option.
  • πŸ“œ biome:stop - Stops the Biome daemon server.
  • πŸ“œ biome:fix - Runs a source code check and applies automatic fixes (linter & formatter) according to the defined rules.
  • πŸ“œ biome:unsafe - Works like biome:fix, but may apply more invasive or risky changes.

Backup and Dependency Management

  • πŸ“œ backup - Backup files with Grunt.
  • πŸ“œ pkg-check - Check useless dependencies with depcheck.
  • πŸ“œ pkg-upgrade - Upgrade outdated dependencies (interactive mode) with npm-check-updates.

Versioning

  • πŸ“œ versioning - Start ungit server.

NPM Commands

  • πŸ“œ npm-version:major - Increments the major version number of your project using npm.
  • πŸ“œ npm-version:minor - Increments the minor version number of your project using npm.
  • πŸ“œ npm-version:patch - Increments the version patch number of your project using npm.

πŸ“Œ Build

When using the build.js file in this boilerplate, it's important to note the significance of the target option. By default, if the target option is not specified in the build.js file, it will be set to browser. However, for projects utilizing the bun.js runtime environment, it's imperative to explicitly set the target to bun. This guarantees compatibility with the bun shell environment and prevents unexpected behavior. Furthermore, it's noteworthy that the target supports three possible values: browser, bun, and node, providing flexibility in defining the build target according to specific project requirements.


πŸ“Œ Similar

You can also check out my other starter projects:

About

Minimalistic boilerplate to quick-start Bun.js development in TypeScript πŸš€

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published