Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kamilkisiela/bob

Build tool used in libraries maintained by The Guild
https://github.com/kamilkisiela/bob

bundler cli typescript yarn-workspaces

Last synced: about 2 months ago
JSON representation

Build tool used in libraries maintained by The Guild

Awesome Lists containing this project

README

        

# Bob (The ~~Bundler~~ Butler)

Bob is the TypeScript build, bundle and verification tool used by almost all
[The Guild](https://the-guild.dev) open source projects.

Scope:

- **Build**: Build ESM and CommonJS compatible npm packages
- **Verify**: Ensure all ESM and CommonJS imports within a npm package are usable
- **Bundle**: Build a single executable for an application (experimental)

## Requirements

- Yarn workspace or single package project
- TypeScript
- It's so strict you shouldn't use it!

## Setup

Setting up bob is currently undocumented. You can check
[GraphQL Code Generator](https://github.com/dotansimha/graphql-code-generator) repository (or any
other The Guild repository).

## Configuration

You can add a `bob` key to each `package.json`.

**Disable bob for a single package**

```jsonc
{
"name": "graphql-lfg",
"bob": false // exclude a single package from all things bob related
}
```

**Disable build for a single package**

```json
{
"name": "graphql-lfg",
"bob": {
"build": false
}
}
```

**Disable check for a single package**

```json
{
"name": "graphql-lfg",
"bob": {
"check": false
}
}
```

**Disable check for a single export in a package**

```json
{
"name": "graphql-lfg",
"bob": {
"check": {
"skip": ["./foo"]
}
}
}
```

## Usage

```bash
$ bob build
$ bob check
```