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

    注意:
    babel 可以将 es6 的 import 编译成不同格式,如果是 CommonJs 显然是不能直接在浏览器跑的,需要一些 bundler ( webpack , browserify )帮你处理依赖打包成能在浏览器跑的代码。

  • 相关阅读:
    输入三个整数x、y、z,请把这三个数由小到大输出
    输入某年某月某日,判断这一天是这一年的第几天?
    JS实现背景透明度可变,文字不透明的效果
    tomcat+java的web程序持续占cpu问题调试
    java中HashMap在多线程环境下引起CPU100%的问题解决
    Java HashSet和LinkedHashSet的用法
    关于List Map Set的线程安全的问题
    java 程序消耗 cpu 100% 查找方法
    新浪微博开放平台——话题跟踪
    Mina 断线重连
  • 原文地址:https://www.cnblogs.com/jiaoshou/p/12189356.html
Copyright © 2020-2023  润新知