yinuoqingqin 2020-01-13
更多gulp常用插件使用请访问:gulp常用插件汇总
gulp-babel这是Babel的Gulp插件。
此自述文件适用于gulp-babel v8 + Babel v7检查7.x分支以了解使用Babel v6的文档
安装gulp-babel
,如果你想获得的下一版本发布前gulp-babel
。
# Babel 7 $ npm install --save-dev gulp-babel @babel/core @babel/preset-env # Babel 6 $ npm install --save-dev babel-core babel-preset-env
const gulp = require('gulp'); const babel = require('gulp-babel'); gulp.task('default', () => gulp.src('src/app.js') .pipe(babel({ presets: ['@babel/preset-env'] })) .pipe(gulp.dest('dist')) );
API
babel([options])
Source Maps
像这样使用gulp-sourcemaps:
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/preset-env'] })) .pipe(concat('all.js')) .pipe(sourcemaps.write('.')) .pipe(gulp.dest('dist')) );
Babel元数据
流中的文件用Babel
属性注释,该属性包含中的元数据babel.transform()。
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()) )
运行
如果尝试使用生成器等功能,则需要添加transform-runtime
为插件,以包括Babel
运行时。否则,您将收到错误:regeneratorRuntime is not defined
。
安装运行时:
$ npm install --save-dev @babel/plugin-transform-runtime $ npm install --save @babel/runtime
用作插件:
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')) );