更多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 )帮你处理依赖打包成能在浏览器跑的代码。

gulp常用插件之gulp-babel使用的更多相关文章

  1. 精通gulp常用插件

    本文主要展示的是gulp常用插件的使用方法和用途,通过对插件的熟练运用达到精通gulp.不定期更新.可以到github上面下载DEMO. github地址:lin-xin/gulp-plugins 匹 ...

  2. gulp常用插件之gulp-rev-collector使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-collector这是一款根据gulp-rev生成的manifest.json文件中的映射, 去替换文件名称, 也可以替换路径. ...

  3. gulp常用插件之autoprefixer使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 autoprefixer这是一款自动管理浏览器前缀的插件,它可以解析CSS文件并且添加浏览器前缀到CSS内容里. 更多使用文档请点击访问autop ...

  4. node和gulp实现前端工程自动化(附:gulp常用插件)

    /** * 1. LESS编译 压缩 合并 * 2. JS合并 压缩 混淆 * 3. img复制 * 4. html压缩 */ // 在gulpfile中先载入gulp包,因为这个包提供了一些APIv ...

  5. gulp常用插件之gulp-eslint使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 ** gulp-eslint**这是一个用于识别和报告在ECMAScript/JavaScript代码中找到的模式的Gulp插件.. 更多使用文档 ...

  6. gulp常用插件之gulp-postcss使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 ** gulp-postcss**这是一款通过多个插件通过管道传递CSS,但是仅解析一次CSS. 更多使用文档请点击访问gulp-postcss工 ...

  7. gulp常用插件之cssnano使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 cssnano这是一款将你的 CSS 文件做 多方面的的优化,以确保最终生成的文件 对生产环境来说体积是最小的插件. 更多使用文档请点击访问cha ...

  8. gulp常用插件之pump使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 pump这是一款小型节点模块,可将流连接在一起并在其中一个关闭时将其全部销毁. 使用标准source.pipe(dest)源时,如果dest发出关 ...

  9. gulp常用插件之gulp-notify使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-notify这是一款gulp通知插件. 更多使用文档请点击访问gulp-notify工具官网. 安装 一键安装不多解释 npm inst ...

随机推荐

  1. Go语言实现:【剑指offer】数据流中的中位数

    该题目来源于牛客网<剑指offer>专题. 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位 ...

  2. c++ 中数组的引用

    在C++里,数组也是可以引用的. 代码如下: char str1[] = "abcde"; ] = str1; 解读第二句代码,括号的优先级最高,'str2'首先与'&'相 ...

  3. [Effective Java 读书笔记] 第二章 创建和销毁对象 第三 四条

    第三条 用私有构造器或者枚举类型强化singleton属性 singleton指只能被实例化一次的类,即将构造器设置为私有,使用公有静态成员来实例化,且只实例化一次对象 第四条 通过私有构造器强化不可 ...

  4. 08-JavaScript基础

    今日知识 1. JavaScript基础 2. 案例 3.总结 JavaScript介绍: * 概念:一门客户端脚本语言 * 运行在客户端浏览器中的,每一个浏览器都有JavaScript的解析引擎 * ...

  5. nginx-tengine集合

    nginx-tengine集合 nginx获取客户端真实ip Nginx/tengine realserver健康检测

  6. Rip 动态路由协议

            路由信息协议(RIP) 是内部网关协议IGP中最先得到广泛使用的协议.        Routing Information Protocol) RIP是一种分布式的基于距离矢量的路由 ...

  7. Mysql 导入导出备份

    恢复MySQL服务器上面的txt格式文件(需要FILE权限,各数据值之间用"制表符"分隔)   1.导入数据库服务器上的txt文件 mysql>load data infil ...

  8. 修改centos7容器的时间和宿主机时间一致

    一.问题 centos7系统容器时间与宿主机系统时间不一致,就进去查看一番,发现时区和宿主机上的时间不一致,下面就来解决一下 二.现象 1.查看centos宿主机的时间 输入如下命令查看 # date ...

  9. Mac-MacOS降级(Mac系统降级,系统回退)

    前言 最近把macOS更新到了 macOS Catalina,使用了一段时间后,结合自己的使用环境和体验,感觉 Catalina 不太好用,就想把系统回退到 macOS Mojave,但是平时几乎不用 ...

  10. kubernetes 资源管理

    前言 在kubernetes环境下,无论集群再大,对应的集群资源(cpu.memory.storage)总是有上限的.而默认情况下,我们启动的pod.以及pod中运行的容器,对应的资源是不加限制的.理 ...