JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 40659
  • Score
    100M100P100Q149084F
  • License Apache-2.0

A babel preset for transforming your JavaScript for Airbnb

Package Exports

  • babel-preset-airbnb

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (babel-preset-airbnb) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

babel-preset-airbnb

A babel preset for transforming your JavaScript for Airbnb.

Currently contains transforms for all standard syntax that is stage 4 (ES2017) or stage 3, except for the following:

  • generators: regenerator-runtime is too heavyweight for our use.
  • async/await: regenerator-runtime is too heavyweight for our use, and async-to-promises is not yet complete enough to be safely used.
  • SIMD: this is a performance feature, so is pretty pointless to polyfill/transpile.
  • lifted template literal restrictions: we do not use tagged template literals, nor implement custom DSLs, otherwise we would enable this.

We have also enabled object rest/spread, although it is only at stage 2. It will hopefully achieve stage 3 soon.

Install

$ npm install --save-dev babel-preset-airbnb

Usage

.babelrc

{
  "presets": ["airbnb"]
}

Via CLI

$ babel script.js --presets airbnb

Via Node API

require("babel-core").transform("code", {
  presets: ["airbnb"]
});

Targeting Environments

This module uses babel-preset-env to target specific environments.

Please refer to babel-preset-env#targets for a list of available options.

For a list of browsers please see browserlist.

You may override our default list of targets by providing your own targets key.

{
  "presets": [["airbnb", {
    "targets": {
      "chrome": 50,
      "explorer": 11,
      "firefox": 45
    }
  }]]
}

The following transpiles only for Node v6.

{
  "presets": [["airbnb", {
    "targets": {
      "node": 6
    }
  }]]
}

If you wish, you can also inherit our default list of browsers and extend them using additionalTargets.

{
  "presets": [["airbnb", {
    "additionalTargets": {
      "chrome": 42,
      "explorer": 8
    }
  }]]
}

You may override our default debug option by providing your own debug key.

{
  "presets": [["airbnb", {
    "debug": true
  }]]
}