gulp 搭建简单的脚手架

gulp模块简介:



一、简单的下载、安装:

(1)全局安装 :        

                          (cnpm) npm install gulp -g;

(2)初始化项目:     

                         (cnpm) npm init    (cnpm)  npm init -y (全部为yes状态)

(3)合并文件插件:   

                          (cnpm) npm install gulp-concat --save-dev

(4)本地安装gulp:    

                          (cnpm) npm install gulp --save-dev

(5)gulp语法检测:     

                         (cnpm)  npm install jshint gulp-jshint --save-dev

(6)gulp压缩js文件:  

                         (cnpm)  npm install gulp-uglify --save-dev

(7)gulp压缩css文件:  

                        (cnpm)  npm install gulp-minify --save-dev

(8)gulp sass 插件:   

                          (cnpm) npm install gulp-ruby-sass --save-dev

(9)gulp服务器:       

                           (cnpm) npm install gulp-webserver --save-dev

(10)gulp重命名:     

                           (cnpm) npm install gulp-rename --save-dev




二、模块引入以及简单使用:

(1)  压缩  重命名:

            var gulp = require(‘gulp’);                              //  gulp模块生成

            var minify = require('gulp-minify-css')              // 压缩文件模块

            var rename= require('gulp-rename')            // 重命名模块

            gulp.task('minifyTask'  ,function(){            // 发布任务  名称为minify

                    gulp.src ('./a/*.css')                       // *找到所有的css文件

                    .pipe(minify())                        // 压缩文件

                    .pipe(rename,function(path){          //  重命名函数

                           path.basename += '.min'              //生成压缩后的文件名称

                    })

                    .pipe(gulp.dest('./b'))            //生成文件

            })

             gulp.watch('./a.index.css',['copy'])               //监听文件    

(2)合并文件:

           var gulp = require(‘gulp’);               //  gulp模块生成           

          var minify = require('gulp-minify-css')         // 压缩文件模块           

          var concat= require('gulp-concat')             // 合并模块

        gulp.task('concatTask',function(){

                 gulp.src ('./a/*.css')                     //   *找到所有的css文件

                  .pipe(['a.css','b.css'])             //  要合并的文件   a.css   b.css

                  .pipe(concat('ab.css'))            //  合并成 ab.css

                  .pipe(minify())                         //   压缩文件

                  .pipe(gulp.dest('./dist/css'))          //   生成文件到dist/css中

             })

(3)服务器  web

             var gulp = require(‘gulp’);                   //  gulp模块生成           

              var webserver = require('gulp-webserver')              // 服务器模块           

               gulp.task('reverse',function(){

                      gulp.src ('./dist')                //   服务器目录

                    .pipe(webserver{

                                port:8080,             //   运行服务器

                                livereload:true,        //   启动liveReload

                                open:true,                          //    启动后自动打开网页

                                host:'localhost'                    //     本地服务器

                            })

                })

(4) sass 配置:

                 var gulp = require(‘gulp’);                  //  gulp模块生成                        

                var sass= require('gulp-ruby-sass')            //       sass模块

                gulp.task('sassTack',function(){

                        gulp.src ('./src/sass/css/*.css')                 //   所有sass文件

                        .on('error',sass.logErroe)                     //   错误提示

                        .pipe(gulp.dest('./dist'))           //  正确生成文件

                 }

(5)监听sass:

                gulp.task('sasswatch',function(){

                     gulp.watch(['./src/assets/css/**/*.scss','sassTack'])              //   可以是数组  执行多个监听

                })

(6)默认加载:

                gulp.task('default',[ 'sassTack','sasswatch','bil-bundel' ],           //     先加载数组,后执行默认加载

                   functon(){

                    })

(7)合并第三方文件:(多个文件)

                gulp.task('bil-bundel',function(){

                       var files = [           '文件1地址',‘文件2地址’....    ]            //   可以多个文件

                     return gulp.src(files)                               //     目录文件

                       .pipe(concat(‘bil-bundel.js’))                 //     合并文件

                      .pipe(uglify(lib-bundel.min.js))                            //   压缩文件

                    .pipe(gulp.dest('./dist'))                                  //   生成文件

                })

(8) 合并自己的 js 文件:(多个)

           gulp.task('jsTack',function(){

                .gulp.src('./src/**/*.js')                         //     目录文件

                .pipe(concat(app.js))                         //     合并文件

                .pipe(gulp.dest('./dist'))                           // 生成文件

            })

(9)打包文件:

          gulp.task('copyhtml',function(){

                    var file = [ './index',                       //    要打包的文件,可多个

                                     './src/**/*.html',                      //    所有的HTML文件

                                    '!./src/assets/**/*.html'  ]                   //     去除空的文件

                    gulp.src(file)                                                      //   目录文件

                    .pipe(gulp.dest('./dist'))                                    //  打包后的文件

            })

(10) html缓存

             gulp.task('revHtml', function () {

                      var files = ['./**/*.html', '!./dist/**', '!./html/**', '!./node_modules/**', '!./h5-wap/**', '!./index.html' ]

                    return gulp.src(files)

                    .pipe(rev())

                    .pipe(gulp.dest('./dist'))

                    .pipe(rev.manifest())

                    .pipe(gulp.dest('rev/html'))

                })

(11)scc缓存

                  gulp.task('revCss', function () {    

                            var files = ['./css/app.css'];    

                            return gulp.src(files)       

                             .pipe(rev())       

                             .pipe(gulp.dest('./dist'))       

                             .pipe(rev.manifest())       

                            .pipe(gulp.dest('rev/css'))

                })

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352

推荐阅读更多精彩内容