gulp-babel
    Overview
    Alternatives
    Playground
    Insights & Analysis
    Issues
    Versions
    Documentation
    Find an Expert
    Dependencies
    Career Opportunities
    Code

gulp-babel

Use next generation JavaScript, today

8.0.0  •  Published 1 years ago  •  by Sindre Sorhus  •  MIT License

This readme is for gulp-babel v8 + Babel v7 Check the 7.x branch for docs with Babel v6 usage

gulp-babel npm Build Status

Use next generation JavaScript, today, with Babel

Issues with the output should be reported on the Babel issue tracker.

Install

Install gulp-babel if you want to get the pre-release of the next version of gulp-babel.

# Babel 7
$ npm install --save-dev gulp-babel @babel/core @babel/preset-env

# Babel 6
$ npm install --save-dev gulp-babel@7 babel-core babel-preset-env

Usage

const gulp = require('gulp');
const babel = require('gulp-babel');

gulp.task('default', () =>
	gulp.src('src/app.js')
		.pipe(babel({
			presets: ['@babel/env']
		}))
		.pipe(gulp.dest('dist'))
);

API

babel([options])

options

See the Babel options, except for sourceMap and filename which is handled for you.

Source Maps

Use gulp-sourcemaps like this:

const gulp = require('gulp');
const sourcemaps = require('gulp-sourcemaps');
const babel = require('gulp-babel');
const concat = require('gulp-concat');

gulp.task('default', () =>
	gulp.src('src/**/*.js')
		.pipe(sourcemaps.init())
		.pipe(babel({
			presets: ['@babel/env']
		}))
		.pipe(concat('all.js'))
		.pipe(sourcemaps.write('.'))
		.pipe(gulp.dest('dist'))
);

Babel Metadata

Files in the stream are annotated with a babel property, which contains the metadata from babel.transform().

Example

const gulp = require('gulp');
const babel = require('gulp-babel');
const through = require('through2');

function logBabelMetadata() {
	return through.obj((file, enc, cb) => {
		console.log(file.babel.test); // 'metadata'
		cb(null, file);
	});
}

gulp.task('default', () =>
	gulp.src('src/**/*.js')
		.pipe(babel({
			// plugin that sets some metadata
			plugins: [{
				post(file) {
					file.metadata.test = 'metadata';
				}
			}]
		}))
		.pipe(logBabelMetadata())
)

Runtime

If you’re attempting to use features such as generators, you’ll need to add transform-runtime as a plugin, to include the Babel runtime. Otherwise, you’ll receive the error: regeneratorRuntime is not defined.

Install the runtime:

$ npm install --save-dev @babel/plugin-transform-runtime 
$ npm install --save @babel/runtime 

Use it as plugin:

const gulp = require('gulp');
const babel = require('gulp-babel');

gulp.task('default', () =>
	gulp.src('src/app.js')
		.pipe(babel({
			plugins: ['@babel/transform-runtime']
		}))
		.pipe(gulp.dest('dist'))
);

License

MIT © Sindre Sorhus

Tags

gulpplugin
babel
transpiler
es2015
es2016
es2017
rewriting
transformation
syntax
codegen
desugaring
javascript
compiler
Get a weekly digest of your favorite packages
We track new versions of your favorite packages, read the changelogs, and summarize them - so you dont have to
Just $5/month per user

Popularity

Weekly Downloads
242.1K
Stars
1.2K

Issues and PRs

Activity

Last ver 1 year ago
Created 5 years ago
Last commit 7 months ago
16 days between commits

Sustainability

27 contributors

Technology

Node version: 10.6.0
8.9K unpacked

Legal and Compliance

MIT License
OSI Approved
0 vulnerabilities

Top Experts

Sindre Sorhus
Maintainer, 49 commits, 12 merges
Henry Zhu
Maintainer, 12 commits, 5 merges, 4 PRs
Works at Babel
Sebastian McKenzie
12 commits, 1 merges, 2 PRs
Works at facebook
Charles Samborski
Maintainer, 2 commits, 7 merges, 4 PRs
Daniel Tschinder
Maintainer, 1 commits, 2 merges, 1 PRs
Logan Smyth
Maintainer, 2 commits, 1 merges, 1 PRs
Works at babel, mozilla, and devtools-html