CLI utilities for Compositor Lab


stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
Minified + gzip package size for @compositor/lab in KB



Command line utilities and exporting module for Compositor Lab

Build Status

npm install @compositor/lab

CLI Usage

Compile lab.json to React components:

lab --out-dir dist/

Watch for changes:

lab --out-dir dist/ --watch

Lab Packages

Lab projects can be published in a way that allows them to be installed and imported into other Lab projects from the app.

Export index.js, lab.json, and theme.json for packaging Lab projects:

lab --pkg --out-dir dist/

CLI Options

-d --out-dir    Output directory
-w --watch      Watch for changes
--pkg           Include index.js, lab.json, and theme.json in output

Node Usage

The Node API is used by the Lab app to export lab components to React and other formats.

lab(config, [options])

Returns an array of objects for writing to files.

const fs = require('fs')
const path = require('path')
const lab = require('@compositor/lab')
const config = require('./lab.json')

const modules = lab(config)

modules.forEach(mod => {
  const filename = path.join(__dirname, 'dist', mod.name + '.js')
  fs.writeFile(filename, mod.module, err => {
    if (err) console.log(err)



A string key to choose an output mode, one of the following:


Boolean to export the template without transpiling to ES5 syntax.


Currently this module uses templates to output to different formats. These templates can be found in lib/templates/. Using an AST for output with tools like Babel is also possible, but templates were used in an attempt to make it easier to contribute to this project.

lab.json Data Structure

See docs/lab-json.md


  • Vue.js export (currently in alpha)
  • Atomic CSS export
  • Support for using third party CSS libraries

Made by Compositor | MIT License

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.