gulp常用插件之gulp-babel使用

Posted jiaoshou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gulp常用插件之gulp-babel使用相关的知识,希望对你有一定的参考价值。

更多gulp常用插件使用请访问:gulp常用插件汇总


gulp-babel这是Babel的Gulp插件。

此自述文件适用于gulp-babel v8 + Babel v7检查7.x分支以了解使用Babel v6的文档

更多使用文档请点击访问gulp-babel工具官网

安装

安装gulp-babel,如果你想获得的下一版本发布前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

使用

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])

  • options
    请参阅Babel 选项,除了sourceMaps``和filename为您处理之外。另外,请记住,将从适用于每个文件的配置文件中加载选项。

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'))
);

以上是关于gulp常用插件之gulp-babel使用的主要内容,如果未能解决你的问题,请参考以下文章

gulp-babel使用

Gulp concat插件错误

gulp常用插件之gulp-sourcemaps使用

使用gulp-babel转换Es6出现exports is not defined 问题

gulp-babel 取消严格模式方法

如何用gulp-babel定位节点