博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gulp+es6 配置
阅读量:7080 次
发布时间:2019-06-28

本文共 3473 字,大约阅读时间需要 11 分钟。

这个gulp配置能够在生产环境下压缩代码, 使用lessES6开发 自动热更新自动刷新页面

关于每一个插件的解释我都已经写上了

gulp 相对而言比 webpack 简单得多,就这四条执行函数,流程化很简洁

// gulp.src()// gulp.dest()// gulp.task()// gulp.watch()复制代码

但是坑还是有的, 尤其是es6降级这里,弄了好久才发现是版本问题。 我把自己写的配置贴出来供大家参考

重点 (版本错误会导致无法输出)

一定要好好检查babel 和 gulp-babel版本

如果你的电脑再使用babel7 版本, 请下载 gulp-babel 8 版本

npm install --save-dev gulp-babel @babel/core @babel/preset-env

如果你和我的一样,babel是6版本, 请下载 gulp-babel 7 版本

npm install --save-dev gulp-babel@7 babel-core babel-preset-env

插件版本

"devDependencies": {    "autoprefixer": "^9.5.1",    "babel-core": "^6.26.3",    "babel-preset-env": "^1.7.0",    "babel-preset-es2015":"^6.24.1",    "gulp": "^3.9.1",    "gulp-babel": "^7.0.1",    "gulp-clean-css": "^4.2.0",    "gulp-connect": "^5.7.0",    "gulp-connect-reproxy": "^0.0.98",    "gulp-htmlclean": "^2.7.22",    "gulp-imagemin": "^5.0.3",    "gulp-less": "^4.0.1",    "gulp-postcss": "^8.0.0",    "gulp-strip-debug": "^3.0.0",    "gulp-uglify": "^3.0.2"  },复制代码

gulpfile.js文件

var gulp = require('gulp');// 在命令行设置为生产环境或者开发环境//开发环境不要使用压缩,会影响找错// windows: set NODE_ENV = development 或 production  //(可能会有问题, 建议使用 :var environment = process.env.NODE_ENV || 'development';)// mac  linux : export NODE_ENV = development 或 productionvar environment = process.env.NODE_ENV || 'development';//根据自己开发的实际需求自行设置, src放开发文件, dist是打包压缩后的导出目录const folder = {    src: "src/",    dist: 'dist/'}// 压缩html代码const htmlClean = require('gulp-htmlclean');// 图片类: 压缩PNG, JPEG, GIF and SVGconst imageMin = require('gulp-imagemin');// uglify 不支持压缩 es6 , 需要先使用babel降级才行 */const uglifyJS = require('gulp-uglify')//es6 降级到es5    请使用  "gulp-babel": "^7.0.1", //切记不要用 8版本, 会出现无法输出的情况const babel = require('gulp-babel');//去除掉 注释, console 和 debuggerconst removeComments = require('gulp-strip-debug')//less 转 cssconst less = require('gulp-less');//css3 兼容各类浏览器脚本const postCss = require('gulp-postcss');const autoPrefixer = require('autoprefixer');//css代码压缩const cleanCss = require('gulp-clean-css');//创建服务器环境插件 支持热更新const connect = require("gulp-connect");gulp.task('html', function () {    const step = gulp.src(folder.src + "html/*")        .pipe(connect.reload())    if (environment == 'production') {        step.pipe(htmlClean())    }    step.pipe(gulp.dest(folder.dist + "html/"))})gulp.task('img', function () {    gulp.src(folder.src + "img/*")        .pipe(imageMin())        .pipe(gulp.dest(folder.dist + "img/"))})gulp.task('css', function () {    var step = gulp.src(folder.src + "css/*")        .pipe(connect.reload())        .pipe(less())        .pipe(postCss([autoPrefixer()]))    if (environment == 'production') {        step.pipe(cleanCss())    }    step.pipe(gulp.dest(folder.dist + "css/"))})gulp.task('js', function () {    var step = gulp.src(folder.src + "js/*")        .pipe(connect.reload())        .pipe(babel({            presets: ['es2015']        }))    if (environment == 'production') {        step.pipe(removeComments())            .pipe(uglifyJS())    }    step.pipe(gulp.dest(folder.dist + "js/"))})gulp.task('server', function () {    //设置默认服务器接口, livereload: true 是否监视文件变化    connect.server({        port: 8888,        livereload: true    })})//自动刷新页面gulp.task('watch', () => {    gulp.watch(folder.src + "html/*", ['html']);    gulp.watch(folder.src + "css/*", ['css']);    gulp.watch(folder.src + "js/*", ['js'])})gulp.task("default", ["html", "img", "css", "js", "server", "watch"]);// default任务一定要写,不然会报警告: Task 'default' is not in your gulpfile// 数组中写哪一个执行哪一个任务, 从左到右执行复制代码

转载地址:http://qxjml.baihongyu.com/

你可能感兴趣的文章
Bitmap的图片压缩汇总
查看>>
树莓派学习手记——制作一个空调遥控器(红外接收、发射的实现)
查看>>
《Maven实战》阅读总结(二)Maven仓库
查看>>
【369天】每日项目总结系列106(2018.02.09)
查看>>
WordPress 主题开发:从入门到精通(必读)
查看>>
Vue入坑记
查看>>
#ReactApp项目构建流程【3】
查看>>
canal 1.0.25 快速启动配置
查看>>
SpringBoot使用AOP+注解实现简单的权限验证
查看>>
Android 8.0 系统和API的变化
查看>>
Git 多人协作开发流程
查看>>
js 时间对象的常规操作
查看>>
BiuJS[v1.0]说明文档(2):数据劫持
查看>>
Centos 7 Yum方式安装Mongdb 3.4
查看>>
遇见大数据可视化 : 【云图】让数据可见
查看>>
Mac Docker 创建第一个Django 应用,Part 1
查看>>
zendAPI 的 CMake 参数详解
查看>>
【201天】黑马程序员27天视频学习笔记【Day18复习脑图】
查看>>
vue+webpack搭建单文件应用和多文件应用webpack.config.js的写法区别
查看>>
【Java系列】从字节码角度深度理解Java函数调用传参方式
查看>>