更多gulp經常使用插件使用請訪問:gulp經常使用插件彙總html
gulp-babel這是Babel的Gulp插件。webpack
此自述文件適用於gulp-babel v8 + Babel v7檢查7.x分支以瞭解使用Babel v6的文檔git
安裝
安裝gulp-babel
,若是你想得到的下一版本發佈前gulp-babel
。github
# 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')) );
APIweb
babel([options])
npm
Source Mapsgulp
像這樣使用gulp-sourcemaps:api
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 )幫你處理依賴打包成能在瀏覽器跑的代碼。