gulp运行及gulpfile.js配置

控制台输入,运行gulp

gulp default

gulpfile.js

var gulp = require(‘gulp‘), //获取gulp
    htmlmin = require("gulp-htmlmin"), //压缩页面javascript、css,去除页面空格、注释,删除多余属性等操作
    imagemin = require("gulp-imagemin"), //压缩图片文件
    cache = require(‘gulp-cache‘), //只压缩修改的图片
    pngquant = require(‘imagemin-pngquant‘), //深度压缩图片
    less = require("gulp-less"), //将less文件编译成css
    sourcemaps = require(‘gulp-sourcemaps‘), //生成sourcemap文件
    cssmin = require("gulp-clean-css"), //压缩css文件
    uglify = require("gulp-uglify"), //压缩javascript文件
    concat = require("gulp-concat"), //合并javascript文件,减少网络请求
    rev = require("gulp-rev-append"), //引用添加版本号,清除页面引用缓存
    autoprefixer = require("gulp-autoprefixer"), //自动处理浏览器前缀
    livereload = require("gulp-livereload"); //监听文件发生变化时,浏览器自动刷新页面

//定义testHtmlmin任务
gulp.task(‘testHtmlmin‘, function() {
    //testHtmlmin参数
    var options = {
        removeComments: true, //清除HTML注释
        collapseWhitespace: true, //压缩HTML
        collapseBooleanAttributes: true, //省略布尔属性的值 <input checked="true"/> ==> <input />
        removeEmptyAttributes: true, //删除所有空格作属性值 <input id="" /> ==> <input />
        removeScriptTypeAttributes: true, //删除<script>的type="text/javascript"
        removeStyleLinkTypeAttributes: true, //删除<style>和<link>的type="text/css"
        minifyJS: true, //压缩页面JS
        minifyCSS: true //压缩页面CSS
    };
    gulp.src(‘*.html‘) //该任务针对的源文件
        .pipe(htmlmin(options)) //该任务调用的模块
        .pipe(gulp.dest(‘‘)); //该任务输出的位置
});

//定义testImagemin任务
gulp.task(‘testImagemin‘, function() {
    //testImagemin参数
    var options = {
        optimizationLevel: 5, //类型:Number  默认:3  取值范围:0-7(优化等级)
        progressive: true, //类型:Boolean 默认:false 无损压缩jpg图片
        interlaced: true, //类型:Boolean 默认:false 隔行扫描gif进行渲染
        multipass: true, //类型:Boolean 默认:false 多次优化svg直到完全优化
        use: [pngquant()] //使用pngquant深度压缩png图片的imagemin插件
    };
    gulp.src(‘*.{png,jpg,gif,ico}‘) //该任务针对的源文件
        .pipe(imagemin(options)) //该任务调用的模块
        .pipe(cache(imagemin(options))) //只压缩修改的图片
        .pipe(gulp.dest(‘‘)); //该任务输出的位置
});

//定义testLess任务
gulp.task(‘testLess‘, function() {
    //cssmin参数
    var options = {
        advanced: false, //类型:Boolean 默认:true [是否开启高级优化(合并选择器等)]
        compatibility: ‘ie7‘, //保留ie7及以下兼容写法 类型:String 默认:‘‘or‘*‘ [启用兼容模式; ‘ie7‘:IE7兼容模式,‘ie8‘:IE8兼容模式,‘*‘:IE9+兼容模式]
        keepBreaks: true, //类型:Boolean 默认:false [是否保留换行]
        keepSpecialComments: ‘*‘ //保留所有特殊前缀 当你用autoprefixer生成的浏览器前缀,如果不加这个参数,有可能将会删除你的部分前缀
    };
    //编译src目录下的所有less文件
    //除了reset.less和test.less(**匹配src/less的0个或多个子文件夹)
    gulp.src([‘src/less/*.less‘, ‘!src/less/**/{reset,test}.less‘]) //该任务针对的源文件
        .pipe(sourcemaps.init()) //该任务调用的模块
        .pipe(less())
        .pipe(sourcemaps.write())
        .pipe(cssmin(options)) //兼容IE7及以下需设置compatibility属性 .pipe(cssmin({compatibility: ‘ie7‘}))
        .pipe(livereload());
    .pipe(gulp.dest(‘‘)); //该任务输出的位置
});

//定义testJs任务
gulp.task(‘testJs‘, function() {
    //uglify参数
    var options = {
        mangle: true, //类型:Boolean 默认:true 是否修改变量名
        compress: true, //类型:Boolean 默认:true 是否完全压缩
        preserveComments: ‘all‘, //保留所有注释
        mangle: {
            except: [‘require‘, ‘exports‘, ‘module‘, ‘$‘]
        } //排除混淆关键字
    };
    //多个文件以数组形式传入
    //gulp.src([‘src/js/index.js‘,‘src/js/detail.js‘]) //该任务针对的源文件
    //压缩src/js目录下的所有js文件
    //除了test1.js和test2.js(**匹配src/js的0个或多个子文件夹)
    gulp.src([‘src/js/*.js‘, ‘!src/js/**/{test1,test2}.js‘])
        .pipe(uglify(options)) //该任务调用的模块
        .pipe(concat(‘bundle.js‘)) //合并后的文件名
        .pipe(gulp.dest(‘‘)); //该任务输出的位置
});

//定义testRev任务
//html模板
// <!doctype html>
// <html>
//   <head>
//     <link rel="stylesheet" href="css/[email protected]@hash">
//     <script src="js/[email protected]@hash"></script>
//     <script src="js/js-two.js"></script>
//   </head>
//   <body>
//     <div>hello, world!</div>
//     <img src="img/[email protected]@hash"  />
//     <script src="js/[email protected]@hash"></script>
//   </body>
// </html>
gulp.task(‘testRev‘, function() {
    gulp.src(‘name.html‘) //该任务针对的源文件
        .pipe(rev()) //该任务调用的模块
        .pipe(gulp.dest(‘‘)); //该任务输出的位置
});

//定义testAutoFx任务
gulp.task(‘testAutoFx‘, function() {
    //uglify参数
    var options = {
        browsers: [‘last 2 versions‘, ‘Android >= 4.0‘], //https://github.com/ai/browserslist#queries
        cascade: true, //是否美化属性值 默认:true 像这样:-webkit-transform: rotate(45deg);        transform: rotate(45deg);
        remove: true //是否去掉不必要的前缀 默认:true
    };
    gulp.src(‘name.css‘) //该任务针对的源文件
        .pipe(autoprefixer(options)) //该任务调用的模块
        .pipe(gulp.dest(‘‘)); //该任务输出的位置
});

//在命令行gulp auto启动此任务
gulp.task(‘auto‘, function() {
    livereload.listen();
    //监听文件修改,当文件修改则执行less任务
    gulp.watch(‘views/less/**.less‘, [‘less‘])
})

//使用gulp.task(‘default‘)定义默认任务
//在命令行使用gulp启动后面任务
gulp.task(‘default‘, [‘testHtmlmin‘, ‘testImagemin‘, ‘testLess‘, ‘testJs‘, ‘testRev‘, ‘testAutoFx‘])
时间: 2024-10-12 18:01:45

gulp运行及gulpfile.js配置的相关文章

gulpfile.js配置 实现ctrl+s自动编译和刷新浏览器

var gulp = require("gulp"); //引进gulp模块var uglify = require("gulp-uglify"); //js压缩var minifyCss = require("gulp-minify-css"); //css压缩var minifyHtml = require('gulp-minify-html'); //html压缩var imagemin = require('gulp-imagemin')

gulp配置文件(gulpfile.js)

需要安装的插件 "gulp": "^3.9.1","gulp-clean": "^0.3.2","gulp-concat": "^2.6.1","gulp-connect": "^5.0.0","gulp-cssmin": "^0.2.0","gulp-imagemin": "^

简单的gulpfile.js参数配置

这里gulp安装和模块安装我就不提了,先简单写一些配置函数 for example /** * Created by yumeiqiang on 16/7/26. */var gulp = require('gulp');var uglify = require('gulp-uglify');// 获取 uglify 模块(用于压缩 js)var minifyCSS = require('gulp-minify-css');// 获取 minify-css 模块(用于压缩 CSS)var sas

如何在修改 gulpfile.js 文件后自动重启 gulp?

gulp 非常好用,编写好 gulpfile.js 文件后,一般情况下在命令行用 gulp 就能启动开发环境,大大简化了开发流程.但是有一个问题没有解决,就是编写 gulpfile.js 文件过程中,如果这个时候 gulp 已经启动,修改 gulpfile.js 文件,进程并不会变化,我们希望 gulpfile.js 文件修改后,gulp 进程能够自动重启 我们接下去以这个脚手架 gulp-simple 为例 原始的 gulpfile.js 文件如下: const gulp = require(

node入门(二)——gulpfile.js初探

本文关于gulpfile.js怎么写,利于完成个性化需求.本文开发环境默认已安装node,详情参考<node入门(一)——安装>. 一.安装gulp npm install -g gulp 二.进入项目根目录,创建package.json文件 npm init 现在项目目录下新增了package.json文件,内容如下: 三.在package.json里增加devDependencies配置项,告诉node在install时要下载哪些插件模块,例如下面是要加载gulp-less插件: gulp

Gulp:静态资源(css,js)版本控制

为了防止客户端的静态资源缓存,我们需要每次更新css或js的时候,通过md5或时间戳等方式重新命名静态资源: 然后涉及到的html模板里的src也要做相应的修改,静态资源需要优化(压缩) 文件目录结构 html模板文件 <html> <head> <link rel="stylesheet" href="../styles/one.css"> <link rel="stylesheet" href=&qu

gulp做简单的js压缩

安装工具 全局安装npm install --global gulp 项目的依赖安装npm install --save-dev gulp npm install --save-dev gulp-rename npm install --save-dev gulp-uglify npm install --save-dev gulp-concat 在要压缩的src目录下创建gulpfile.js var gulp = require('gulp'); var rename = require('

vue-cli3 vue.config.js配置

vue-cli3推崇零配置,其图形化项目管理也很高大上. 但是vue-cli3推崇零配置的话,导致了跟之前vue-cli2的配置方式都不一样了. 别名设置,sourcemap控制,输入文件位置和输出文件位置和输出的方式,压缩js控制,打包webapck日志分析,externals忽略配置(外部引入),调试的端口配置,proxy接口配置等等的. 有时候还需要我们配置的,因为官方推荐的,并不适用于我们平时的开发所用的. 所以,我的vue.config.js配置是下面这样的.还有一个改hash的配置,

chrome扩展程序开发之在目标页面运行自己的JS

大家都知道JS是运行在客户端的,所以,如果我们自己写一个浏览器的话,是一定可以往下载下来的网页源代码中加入js的.可惜我们没有这个能力.不过幸运的是,chrome的扩展程序可以帮我们做到这件事. Google Chrome是一个很强大的浏览器,提供了各种各样的插件,大大提升了使用了的效率,比如vimium.honx等. Google在提供这些插件的同时还允许用户开发自己的插件. 最近在写js的脚本采集程序,需要测试在网页中的运行情况,因此可以利用Chrome插件进行测试. 本文会做一个chrom