A standard babel config, so that plugins don't need the same script in every repository.

Usage no npm install needed!

<script type="module">
  import videojsBabelConfig from 'https://cdn.skypack.dev/@videojs/babel-config';



Build Status Greenkeeper badge Slack Status

Currently babel configs are the same for most plugins, and most of them are built using this babel config via babel. We have some libraries though that are should not be built using rollup for nodejs consumption, that are currently doing so. So this config while still consumed by videojs-generate-rollup-config can also be used standalone with babel-cli.

Lead Maintainer: Brandon Casey @brandonocasey

Maintenance Status: Stable

Table of Contents


$ npm install --save-dev @babel/cli @videojs/babel-config


  1. In your rollup config add a line to delete module builds:
if (config.builds.module) {
  delete config.builds.module;
  1. Add a npm scripts for cjs/es dists to your package.json:
  "build:cjs": "babel-config-cjs -d ./cjs ./src",
  "build:es": "babel-config-es -d ./es ./src",
  "watch:cjs": "npm run build:cjs -- -w",
  "watch:es": "npm run build:es -- -w"
  1. verify that main in package.json is set to the cjs dist. Something like cjs/index.js
  2. verify that module in package.json is set to the es dist. Something like es/index.js
  3. verify that browser in package.json is set to the browser dist. Something like dist/project-name.js
  4. Add es and cjs to vjsstandard.ignore in package.json
  5. Make sure that es/ and cjs/ are in files in package.json
  6. Add /es and /cjs to .gitignore.
  7. Add ./es and ./cjs to the npm script for clean after mkdir -p and rm -rf.
shx rm -rf ./dist ./test/dist ./cjs ./es && shx mkdir -p ./dist ./test/dist ./cjs ./es

Important things

  • When running through babel-config-cjs, babel-config-es, or babel-config-run if the TEST_BUNDLE_ONLY environment variable is set nothing will run! This is to maintain parity with videojs-generate-rollup-config.
  • The babel-config-cjs binary runs babel cli with --verbose and --config-file set to the cjs config exported here.
  • The babel-config-es binary runs babel cli with --verbose and --config-file set to the es config exported here.
  • The babel-config-run binary runs babel cli with --verbose but no config file.

Changing configuration

  1. require the configuration you want to use const config = require('@videojs/babel-config/cjs.js');
  2. Make changes to it and export: module.export = config.
  3. Change the build scripts to babel-config-run --config-file <new-config> ...