zoukankan      html  css  js  c++  java
  • gulp备忘

    // npm install gulp gulp-sourcemaps gulp-name gulp-notify del --save-dev
    // npm install  gulp-ruby-sass gulp-autoprefixer  gulp-minify-css  --save-dev
    // npm install jshint gulp-jshint gulp-concat gulp-uglify --save-dev
    // npm install gulp-imagemin gulp-cache --save-dev
    
    
    var gulp = require('gulp'),
        
        //style
        sass = require('gulp-ruby-sass'),//编译sass
        autoprefixer = require('gulp-autoprefixer'), //自动添加css前缀
        rename = require('gulp-rename'), //重命名
        minifycss = require('gulp-minify-css'), //压缩css
        
        //js
        jshint = require('gulp-jshint'),  //js代码校验
        concat = require('gulp-concat'), //合并js文件
        uglify = require('gulp-uglify'), //压缩js代码
    
        //image
        imagemin = require('gulp-imagemin'),  //压缩图片
        cache = require('gulp-cache'),//图片缓存,只有图片替换了才压缩
    
        //其他
        sourcemaps = require('gulp-sourcemaps'),
        notify = require('gulp-notify'), //更改提醒
        livereload = require('gulp-livereload'), //自动刷新页面
        del = require('del')
    
    
    
    /**
     * 样式
     * 1、scss编译
     * 2、添加css前缀
     * 3、压缩css
     */
    gulp.task('styles',function(){
        return sass('project/scss/**/*.scss', {sourcemap: true,style:'expanded'})
                .on('error', sass.logError)
                .pipe(sourcemaps.write())
                .pipe(autoprefixer({ browsers: ['last 2 versions','safari 5','> 5%','Firefox > 20','ie 6-8','ios 6', 'android 4'] }))
                // .pipe(rename({suffix: '.min'}))
                // .pipe(minifycss())   //重命名压缩css
                .pipe(gulp.dest('project/dist/css'))
                // .pipe(notify("styles 编译完成!"));
    });
    
    /**
     * js
     * 1、js代码校验
     * 2、合并js
     * 3、压缩
     */
    gulp.task('scripts', function() {
      return gulp.src('project/js/**/*.js')
        .pipe(jshint())
        .pipe(jshint.reporter('default'))
        .pipe(sourcemaps.init())
        .pipe(concat('main.js'))  //合并js生成文件为:main.js
        .pipe(sourcemaps.write())
        // .pipe(rename({suffix: '.min'}))
        // .pipe(uglify())  //重命名压缩js
        .pipe(gulp.dest('project/dist/js'))
        // .pipe(notify("scripts 编译完成!"));
    });
    
    /**
     * images
     * 1、图像压缩
     * 2、图片缓存,只有图片替换了才压缩
     * 
     */
    gulp.task('images',function(){
        return gulp.src('project/images/**/*')
            .pipe(cache(imagemin({
                optimizationLevel: 5, //类型:Number  默认:3  取值范围:0-7(优化等级)
                progressive: true, //类型:Boolean 默认:false 无损压缩jpg图片
                interlaced: true, //类型:Boolean 默认:false 隔行扫描gif进行渲染
                multipass: true //类型:Boolean 默认:false 多次优化svg直到完全优化
            })))
            .pipe(gulp.dest('project/dist/images'))
            // .pipe(notify("images 编译完成!"));
    });
    
    // Clean dist的文件
    gulp.task('clean', function(cb) {
        del(['project/dist/**/*']).then(paths => {
            console.log('删除文件列表如下:
    ', paths.join('
    '));
        });
    });
    
    
    gulp.task('watch',function(){
        // 监控style文件
        gulp.watch('project/scss/**/*.scss',['styles']);
        // 监控script文件
        gulp.watch('project/js/**/*.js',['scripts']);
        // 监控images文件
        gulp.watch('project/images/**/*',['images']);
    
        livereload.listen();
        gulp.watch(['project/dist/**']).on('change',livereload.changed);
    });
    
    gulp.task('default',function(){
        gulp.start('styles','scripts','images');
    });

    参考文章:https://markpop.github.io/2014/09/17/Gulp%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/

  • 相关阅读:
    iOS7 iOS8 毛玻璃效果的分别实现
    关于app transfer之后的开发
    微信登录后,请求用户信息时, 返回地址信息是拼音的解决方案
    获得设备型号(含iPhone6 , iPhone 6+)
    iOS 开发者计划申请 2014 年最新心得[转]
    Facebook的Pop动画库相关资料
    iOS添加自定义字体方法
    iOS8新增加的frameworks, 在目前基于7以上开发的情况下, 使用下列sdk要注意设置成optional
    iOS开发 .framework的Optional(弱引用)和Required(强引用)区别, 有错误 Library not found………………
    python接口自动化测试二:常用操作
  • 原文地址:https://www.cnblogs.com/joya0411/p/6007641.html
Copyright © 2011-2022 走看看