zoukankan      html  css  js  c++  java
  • 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 )帮你处理依赖打包成能在浏览器跑的代码。

  • 相关阅读:
    LFS Linux From Scratch 笔记2(经验非教程)BLFS
    LFS Linux From Scratch 笔记(经验非教程)
    Using VNC on a debian/Ubuntu server with a OS X Mac
    Use weechat (IRC client) on OS X. MacBook Pro
    HC
    Vim 7.4.1952 with Python/Ruby/Lua/Perl/C Syntax built for Ubuntu 16.04 x86_64
    How to make workflow chart using several tools in Linux?
    STM32 串口 重定向
    有哪些大家不说,但需要知道的社会规则?
    如何理解 UL94HB , UL94-V0 , UL94-V1 , UL94-V2
  • 原文地址:https://www.cnblogs.com/jiaoshou/p/12189356.html
Copyright © 2011-2022 走看看