node-boilerplate

Minimalistic boilerplate to quick-start Node.js development in TypeScript ๐Ÿš€

MIT License

Stars
4
Committers
1

node-boilerplate ๐Ÿš€

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

Instant Value - All basic tools included and configured:

  • ๐Ÿš€ Typescript >= 5.3
  • ๐ŸŒ Node.js >= 20.10.0
  • ๐Ÿง… Use Bun as package manager
  • ๐ŸŒˆ ES
  • ๐Ÿงช Biome for code formatting and linting
  • โœ… Jest or Bun test for fast unit testing and code coverage
  • ๐Ÿ“š Type definitions for Node.js and Jest
  • โš™๏ธ EditorConfig for consistent coding style
  • ๐Ÿ“ฆ NPM scripts for common operations
  • โšก Reproducible environments thanks to Volta
  • ๐Ÿ› ๏ธ Example configuration for GitHub Actions
  • ๐Ÿ“ Simple example of TypeScript code and unit test
  • ๐Ÿ— Run tasks with Grunt (example for backup)
  • ๐Ÿš„ Build faster with ESBuild
  • ๐Ÿ–ฅ๏ธ Ungit for version control (git) with a GUI
  • ๐Ÿ”‘ Dotenv for environment variables
  • ๐Ÿ”„ Nodemon for automatic restarts node server in development
  • ๐Ÿ”Œ Tsc-watch for automatic transpile source files in development
  • ๐Ÿ“˜ 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/node-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 Node.js.
  • ๐Ÿ“œ start:bundle - Run your application with Node.js using the bundled JavaScript file from dist.

Clean

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

Development

  • ๐Ÿ“œ dev:tsc:watch - Interactive watch mode to automatically transpile source files with tsc-watch in development.
  • ๐Ÿ“œ dev:nodemon:watch - Interactive watch mode to automatically restart Node.js server in development with nodemon.

Build

  • ๐Ÿ“œ build - Transpile TypeScript to ES6.
  • ๐Ÿ“œ build:watch - Interactive watch mode to automatically transpile source files .
  • ๐Ÿ“œ build:bundle - Bundle source files with ESbuild.

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.

NVM

  • ๐Ÿ“œ nvm - Manage multiple node.js versions. Easily switch between node versions per project to ensure compatibility.

NOTE: dev.tsc.watch and dev:nodemon:watch script are designed to run at the same time when developing your application.


๐Ÿ“Œ Similar

You can also check out my other starter projects:

Badges
Extracted from project README's
forthebadge forthebadge forthebadge forthebadge forthebadge
Related Projects