美文网首页
如何使用gulp

如何使用gulp

作者: 阿鲁提尔 | 来源:发表于2018-04-04 00:15 被阅读0次
gulp安装
npm install gulp-cli -g  
//在全局安装一个客户端命令工具
npm install gulp -D
//在本地node-modules中安装gulp
注:我安装到这一步的时候,npm报错
//gyp ERR! stack Error: Can't find Python executable "python",
//you can set the PYTHON env variable.

touch gulpfile.js
gulp --help

在项目下新建dist(发布上线)和src(本地编辑)文件夹

mkdir dist src
//gulp把src文件夹下的文件压缩到dist文件中发布上线

线下编辑的时候,会把很多功能拆成不同模块,发布上线的时候,使用gulp压缩打包成一个文件。

gulp插件
npm install --save-dev gulp-cssnano  //css的压缩
npm install --save-dev gulp-concat  //文件合并
gulp使用

把多个css文件合并成一个css文件,并且对css进行压缩

//gulpfile.js文件
var gulp = require('gulp');

var cssnano = require('gulp-cssnano');
var concat = require('gulp-concat');

gulp.task('css',function(){  //新建一个任务
    gulp.src('./src/css/*.css')  
    //把这个文件下所有css变为数据流
        .pipe(concat('index-merge.css')) //合并这个文件
        .pipe(cssnano()) //压缩
        .pipe(gulp.dest('dist/css/'));  //存放到这个位置
})
//通过gulp css 就可以执行压缩合并

//也可以再声明一个任务
gulp.task('default',['css'])
//使用gulp default 也可以调用css压缩

压缩合并html, css, js, img文件

//gulpfile.js文件
var gulp = require('gulp');

// 引入组件
var minifycss = require('gulp-minify-css'), // CSS压缩
    uglify = require('gulp-uglify'), // js压缩
    concat = require('gulp-concat'), // 合并文件
    // rename = require('gulp-rename'), // 重命名
    // clean = require('gulp-clean'), //清空文件夹
    minhtml = require('gulp-htmlmin'), //html压缩
    jshint = require('gulp-jshint'), //js代码规范性检查
    imagemin = require('gulp-imagemin'); //图片压缩


gulp.task('html', function() {
  gulp.src('src/*.html')
    .pipe(minhtml({collapseWhitespace: true}))
    .pipe(gulp.dest('dist'));
});

gulp.task('css', function(argument) {
    gulp.src('src/**/*.css')
        .pipe(concat('merge.min.css'))
        // .pipe(rename({
        //  suffix: '.min'
        // }))
        .pipe(minifycss())
        .pipe(gulp.dest('dist/css/'));
});
gulp.task('js', function(argument) {
    gulp.src('src/js/*.js')
        .pipe(jshint())
        .pipe(jshint.reporter('default'))
        .pipe(concat('merge.min.js'))
        // .pipe(rename({
        //  suffix: '.min'
        // }))
        .pipe(uglify())
        .pipe(gulp.dest('dist/js/'));
});

gulp.task('img', function(argument){
    gulp.src('src/imgs/*')
        .pipe(imagemin())
        .pipe(gulp.dest('dist/imgs'));
});

// gulp.task('clear', function(){
//  gulp.src('dist/*',{read: false})
//      .pipe(clean());
// });

gulp.task('build', ['html', 'css', 'js', 'img']);

监控项目文件变动,自动刷新浏览器,本地调试

var gulp = require('gulp');

// 引入组件
var browserSync = require('browser-sync').create();
//创建一个

var scp = require('gulp-scp2');
var fs = require('fs');

gulp.task('reload', function(){
    browserSync.reload();
});
//定义一个reload任务,执行这个任务时候,让浏览器页面重新加载

gulp.task('server', function() {
    browserSync.init({
        server: {
            baseDir: "./src"
        }
    });
    gulp.watch(['**/*.css', '**/*.js', '**/*.html'], ['reload', 'scp']);
    //监听,当前面的文件发送改变时,执行后面的任务
});
//新建一个server任务,启动一个服务器,基准目录src
//gulp server时,启动服务器

gulp.task('scp', function() {
    return gulp.src('src/**/*')
        .pipe(scp({
            host: '121.40.201.213',
            username: 'root',
            privateKey: fs.readFileSync('/Users/wingo/.ssh/id_rsa'),
            dest: '/var/www/fe.xxx.com',
            watch: function(client) {
                client.on('write', function(o) {
                    console.log('write %s', o.destination);
                });
            }
        }))
        .on('error', function(err) {
            console.log(err);
        });
});

监控项目文件变动,自动压缩、合并、打包,上传到服务器

var gulp = require('gulp');
var rev = require('gulp-rev');
var revReplace = require('gulp-rev-replace');
var useref = require('gulp-useref');
var filter = require('gulp-filter');
var uglify = require('gulp-uglify');
var csso = require('gulp-csso'); //css优化压缩
var clean = require('gulp-clean'); //文件夹清空

gulp.task("index", function() {
  var jsFilter = filter("**/*.js", {restore: true});
  var cssFilter = filter("**/*.css", {restore: true});

  var userefAssets = useref.assets();


  return gulp.src("src/index.html")
    .pipe(userefAssets)      // Concatenate with gulp-useref
    .pipe(jsFilter)
    .pipe(uglify())             // Minify any javascript sources
    .pipe(jsFilter.restore)
    .pipe(cssFilter)
    .pipe(csso())               // Minify any CSS sources
    .pipe(cssFilter.restore)
    .pipe(rev())                // Rename the concatenated files
    .pipe(userefAssets.restore())
    .pipe(useref())
    .pipe(revReplace())         // Substitute in new filenames
    .pipe(gulp.dest('dist'));
});

gulp.task('clear', function(){
    gulp.src('dist/*',{read: false})
        .pipe(clean());
});

相关文章

  • Gulp-Todo

    Gulp の todo 应用 本节讲解如何使用gulp构建web应用,以此介绍gulp在前端领域中的应用,以tod...

  • Gulp 使用方法(教程一)

    Gulp 官网 目录 Gulp 环境 Gulp 环境 初始化目录结构 安装 gulp gulp 的简单使用 使用 ...

  • 如何使用gulp

    gulp安装 在项目下新建dist(发布上线)和src(本地编辑)文件夹 线下编辑的时候,会把很多功能拆成不同模块...

  • 如何使用GULP?

    1.背景介绍 gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器;它不仅能对网站资源进行优化,而...

  • 如何使用gulp?

    大家好,我是IT修真院深圳分院第01期学员,一枚正直纯洁善良的web程序员。 今天给大家分享一下,修真院官网JS(...

  • Gulp如何使用

    gulp 自动化工具 ->基于node官网 http://gulpjs.com/ 使用Git Bash或...

  • gulp的简单使用

    gulp使用流程:安装nodejs -> 全局安装gulp -> 项目安装gulp以及gulp插件 -> 配置gu...

  • 如何打包发布-Gulp

    如何打包发布-Gulp 压缩 在线压缩工具 https://javascript-minifier.com/ 使用...

  • gulp入门

    安装gulp 安装gulp插件 gulp使用与执行 在目录创建gulpfile.js文件 执行:gulp defa...

  • ① - ES6 项目创建

    任务自动化gulp什么是任务自动化什么是gulpgulp的作用了解如何使用gulp完成任务自动化参考:http:/...

网友评论

      本文标题:如何使用gulp

      本文链接:https://www.haomeiwen.com/subject/grwqhftx.html