gulp构建工作流

gulp构建工作流以及gulpfile.js文件

### 步骤:
1. 命令行创建npm的配置文件
    a. npm init(这时候生成一个package.json的文件)
2. 添加一个gulp的依赖
    npm install gulp --save-dev 
3. 在项目根目录下添加一个gulpfile.js文件,这个是gulp的主文件,这个文件名是固定的

4. 在gulpfile中抽象我们需要做的任务
    需要做的任务有:1. LESS编译 压缩 合并
                    2. JS合并 压缩 混淆
                    3. img复制
                    4. html压缩
    这个时候要在src中写源文件,写完之后要将这些源文件发布到dist目录中
5. 添加less的编译需要插件,所以要在根目录下安装
    npm install gulp-less gulp-concat gulp-uglify gulp-cssnano gulp-htmlmin --save-dev
    (其中包括的功能有less编译,压缩合并,js合并压缩混淆,img复制)
    包下载好之后要将包导入
6.  启用自动化同步服务器的功能
    npm install browser-sync --save-dev 
7.完整的gulpfile.js文件代码

        'use strict';
        /**
         * 1. LESS编译 压缩 合并
         * 2. JS合并 压缩 混淆
         * 3. img复制
         * 4. html压缩
         */
        
        // 在gulpfile中先载入gulp包,因为这个包提供了一些API
        var gulp = require('gulp');
        var less = require('gulp-less');
        var cssnano = require('gulp-cssnano');
        
        // 1. LESS编译 压缩 --合并没有必要,一般预处理CSS都可以导包
        gulp.task('style', function() {
          // 这里是在执行style任务时自动执行的
          gulp.src(['src/styles/*.less', '!src/styles/_*.less'])
            .pipe(less())
            .pipe(cssnano())
            .pipe(gulp.dest('dist/styles')) //这里不用写styles文件夹,会自动创建
            .pipe(browserSync.reload({
              stream: true
            }));
        });
        
        var concat = require('gulp-concat');
        var uglify = require('gulp-uglify');
        
        // 2. JS合并 压缩混淆
        gulp.task('script', function() {
          gulp.src('src/scripts/*.js')
            .pipe(concat('all.js'))
            .pipe(uglify())
            .pipe(gulp.dest('dist/scripts'))
            .pipe(browserSync.reload({
              stream: true
            }));
        });
        
        // 3. 图片复制
        gulp.task('image', function() {
          gulp.src('src/images/*.*')
            .pipe(gulp.dest('dist/images'))
            .pipe(browserSync.reload({
              stream: true
            }));
        });
        
        var htmlmin = require('gulp-htmlmin');
        // 4. HTML
        gulp.task('html', function() {
          gulp.src('src/*.html')
            .pipe(htmlmin({
              collapseWhitespace: true,
              removeComments: true
            }))
            .pipe(gulp.dest('dist'))
            .pipe(browserSync.reload({
              stream: true
            }));
        });
        
        var browserSync = require('browser-sync');
        gulp.task('serve', function() {
          browserSync({
            server: {
              baseDir: ['dist']
            },
          }, function(err, bs) {
            console.log(bs.options.getIn(["urls", "local"]));
          });
        
          gulp.watch('src/styles/*.less',['style']);
          gulp.watch('src/scripts/*.js',['script']);
          gulp.watch('src/images/*.*',['image']);
          gulp.watch('src/*.html',['html']);
        });

转载于:https://www.cnblogs.com/ccvtt/p/8554975.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值