Skip to content

A babel preset for transforming your JavaScript for Alibaba.ir

Notifications You must be signed in to change notification settings

alibaba-ir/babel-preset-alibaba

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

babel-preset-alibaba

A babel preset for transforming your JavaScript for Alibaba.ir.

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.
  • Compile the new function bind operator :: to ES5.
  • Turn JSX into React function calls.
  • Compile class and object decorators to ES5.
  • Syntax Dynamic Import. Allow parsing of import(). source
  • Babel React Optimize in Production Mode:
  1. transform-react-constant-elements
  2. transform-react-inline-elements
  3. transform-react-remove-prop-types
  4. transform-react-pure-class-to-function
  • 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.

Install

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

Usage

Via .babelrc (Recommended)

.babelrc

{
  "presets": ["alibaba"]
}

Via CLI

$ babel script.js --presets alibaba

Via Node API

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

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": [["alibaba", {
    "targets": {
      "chrome": 50,
      "explorer": 11,
      "firefox": 45
    }
  }]]
}

The following transpiles only for Node v6.

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

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

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

Releases

No releases published

Packages

No packages published