From efbeb06c63d7444f4b1cf5ee72f172ccd27a656d Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Sat, 8 Oct 2016 11:20:03 -0400 Subject: [PATCH] explain how it works [skip ci] --- experimental/babel-preset-env/README.md | 28 ++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/experimental/babel-preset-env/README.md b/experimental/babel-preset-env/README.md index 45b6e337e5..753b035c48 100644 --- a/experimental/babel-preset-env/README.md +++ b/experimental/babel-preset-env/README.md @@ -1,6 +1,28 @@ ## babel-preset-env [![npm](https://img.shields.io/npm/v/babel-preset-env.svg)](https://www.npmjs.com/package/babel-preset-env) [![travis](https://img.shields.io/travis/babel/babel-preset-env/master.svg)](https://travis-ci.org/babel/babel-preset-env) -> Babel preset for all envs. +> Babel preset for all environments. + +### How it currently works + +#### Determine browser support for ECMAScript features (up to `latest`) + +[#7](https://github.com/babel/babel-preset-env/issues/7) - Use external data such as [`compat-table`](https://github.com/kangax/compat-table) to determine browser support. We should create PRs there when necessary. + +![](https://cloud.githubusercontent.com/assets/588473/19214029/58deebce-8d48-11e6-9004-ee3fbcb75d8b.png) + +We run the script [build-data.js](/scripts/build-data.js) which creates [plugins.json](/data/plugins.json). + +#### Make mapping between javascript features and plugins + +This should be straightforward to do in most cases. There might be cases were plugins should be split up more. Currently located at [pluginFeatures.js](/data/pluginFeatures.js). + +#### Support all plugins in Babel that are considered `latest` + +[#14](https://github.com/babel/babel-preset-env/issues/14) - It won't include `stage-x` plugins. env will support all plugins in what we consider the latest version of Javascript (by matching what we do in [`babel-preset-latest`](http://babeljs.io/docs/plugins/preset-latest/)). + +#### Determine the lowest common denominator of plugins to be included in the preset + +If you are targeting IE 8 and Chrome 55 it will include all plugins required by IE 8 since you would need to support both still. ## Install @@ -8,9 +30,9 @@ $ npm install --save-dev babel-preset-env ``` -## Usage via `.babelrc` +## Usage via [`.babelrc`](http://babeljs.io/docs/usage/babelrc/) -### Options +### [Options](http://babeljs.io/docs/plugins/#pluginpresets-options) * `targets` - an object of browsers/environment versions to support (ex: chrome, node, etc).