/bob

Build tool used in libraries maintained by The Guild

Primary LanguageTypeScript

Bob (The Bundler Butler)

Bob is the TypeScript build, bundle and verification tool used by almost all The Guild 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 repository (or any other The Guild repository).

Configuration

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

Disable bob for a single package

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

Disable build for a single package

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

Disable check for a single package

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

Disable check for a single export in a package

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

Usage

$ bob build
$ bob check

# only use this command if you know the secret sauce
$ bob runify