Skip to content

PlayForm/Build

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒ€โ€Buildโ€โ€”

Build is a powerful tool that compiles all your TypeScript files into JavaScript, leveraging the speed of ESBuild and the type-checking capabilities of the TypeScript compiler.

๐Ÿ“ฆ Features

  • Fast compilation using ESBuild
  • TypeScript support with type-checking
  • Watch mode for development
  • Customizable ESBuild configuration
  • Supports both CommonJS and ES modules

๐Ÿš€ Installation

Install the package as a development dependency:

npm install -D -E @playform/build

๐Ÿ› ๏ธ Usage

Command Line

Run the build tool from the command line:

npx @playform/build 'Source/**/*.ts'

CLI Options

Usage: Build [options] <File...>

Arguments:
  File                      ๐Ÿ“ File patterns to build

Options:
  -V, --version             Output the version number
  -ES, --ESBuild <File>     ๐Ÿ“œ Custom `ESBuild` configuration file
  -TS, --TypeScript <File>  ๐Ÿ“œ Custom `TypeScript` configuration file (default: "tsconfig.json")
  -W, --Watch               ๐Ÿ‘๏ธ Watch mode: rebuild on file changes
  -h, --help                Display help information

NPM Scripts

Add Build to your package.json scripts:

{
	"scripts": {
		"Build": "Build 'Source/**/*.ts'",
		"Run": "Build 'Source/**/*.ts' --Watch",
		"prepublishOnly": "Build 'Source/**/*.ts'"
	}
}

โš™๏ธ Configuration

๐Ÿ“œโ€ESBuild Configuration

Create a custom ESBuild configuration file (e.g., ESBuild.ts):

export default {
	minify: true,
	sourcemap: true,
	// Add other esbuild options here
};

Use the custom configuration:

npx @playform/build 'Source/**/*.ts' --ESBuild ESBuild.ts

See an example of a configuration file in ESBuild.ts

๐Ÿ“œโ€TypeScript Configuration

Create a tsconfig.json file in your project root:

{
	"compilerOptions": {
		"outDir": "Target",
		"rootDir": "Source",
		"strict": true
	},
	"extends": "@playform/build/tsconfig",
	"include": ["Source"]
}

๐Ÿ“œโ€JSConfig Configuration (optional)

For JavaScript projects using JSDoc comments, create a jsconfig.json:

{
	"compilerOptions": {
		"outDir": "Target",
		"rootDir": "Source",
		"checkJs": true
	},
	"extends": "@playform/build/jsconfig",
	"include": ["Source"]
}

๐Ÿค Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines and feel free to submit a Pull Request.

๐Ÿ“„ License

This project is licensed under the MIT LICENSE.

Changelog

See CHANGELOG.md for a history of changes to this component.