How to use the external helpers.
Babel has a few helper functions that'll be placed at the top of the generated code if needed so it's not inlined multiple times throughout that file. This may become an issue if you have multiple files, especially when you're sending them to the browser. gzip alleviates most of this concern but it's still not ideal.
You can tell Babel to not place any declarations at the top of your files and instead just point them to a reference contained within the external helpers.
$ babel --external-helpers
babel.transform("code", { externalHelpers: true });
$ babel-external-helpers [options]
or
require("babel").buildExternalHelpers();
or from external-helpers.js
inside an npm release of babel-core
.
Option | Default | Description |
---|---|---|
-t, --output-type [type] |
global |
Set output format: global , umd or var |
-l, --whitelist |
Whitelist of helpers to ONLY include |
global
output format sets helpers as global variable by adding babelHelpers
to global
or this
.
umd
output format wraps helpers in UMD compatible with browsers, CommonJS and AMD.
var
outputs variable babelHelpers
(var babelHelpers = {}
) and helpers are assigned to it. This output format is suitable for additional processing.
require("babel-core/external-helpers");
This injects the external helpers into global
.
<script src="your-path-to/babel/external-helpers.js"></script>
In a browser environment you can use a <script>
tag to inject the babelHelpers
into the window
object.
You can use the usedHelpers
metadata property to get a list of helpers that
are required for a particular piece of code:
require("babel").transform("code").metadata.usedHelpers;
This will be an array of helpers that you can then pass to
buildExternalHelpers
like so:
require("babel").buildExternalHelpers(usedHelpers);