vega / vega-lite-dev-config

Version-controlled build config for easy re-use and sharing
BSD 3-Clause "New" or "Revised" License
2 stars 2 forks source link

vega-lite-dev-config

Deprecated. Please add the necessary dependencies manually.

Build Status npm version

Version-controlled build config for easy re-use and sharing using Beemo.

Install

yarn add --dev vega-lite-dev-config

Before using the build config provided you should remove any older dependencies or config files for the drivers you intend to use (e.g., remove eslint and .eslintrc). vega-lite-dev-config will handle these dependencies, and it will auto-generate the config files for you.

Using drivers

This project is built with beemo, and therefore requires a ".config/beemo.ts" configuration file with a list of drivers you want to enable. You can optionally configure some drivers as shown below:

// .config/beemo.ts
import { Config } from "vega-lite-dev-config";

const config: Config = {
  module: 'vega-lite-dev-config',
  drivers: {
    babel: true,
    prettier: true,
    eslint: true,
    jest: true,
    typescript: {
      buildFolder: "build"
    }
  },
  // optional settings for the vega-lite-dev-config
  settings: {
    node: true,
    react: false,
    babel: {
      jest: true
    }
  }
};

If you want to customize the drivers, you need to create overrides as described in the Beemo docs.

Executing drivers

Executing a driver will initialize Beemo's pipeline, generate configuration files (e.g., it will generate a .eslintrc or prettier.config.js, and execute the underlying driver binary and logging to the console.

All arguments passed to Beemo are passed to driver.

You may define these commands as scripts in your package.json:

// package.json
{
  "scripts": {
    "prepare": "beemo create-config --silent",
    "test": "beemo jest",
    "test:inspect": "node --inspect-brk ./node_modules/.bin/jest --runInBand",
    "prettierbase": "beemo prettier '*.{css,scss,html}'",
    "eslintbase": "beemo eslint .",
    "format": "yarn eslintbase --fix && yarn prettierbase --write",
    "lint": "yarn eslintbase && yarn prettierbase --check",
    "types": "beemo typescript",
    "types:watch": "beemo typescript --watch"
  }
}

Publishing

Publishing is handled by a 2-branch pre-release process, configured in publish.yml. All changes should be based off the default next branch, and are published automatically unless a skip-release label is applied to the PR.