• 前端工具——Gulp篇


    一、构建gulp环境

    1、下载nodejs

    gulp基于node.js,要通过nodejs的npm安装gulp,所以要先安装node.js环境。(英文官网/中文官网链接)。

    通过cmd命令窗口确定安装node.js。(在命令窗口输入node -v或npm -v 查看是否返回出版本号)。

    2、全局安装gulp(全局环境)

    确定正确安装了nodejs环境,然后通过命令全局方式安装gulp:

    npm install gulp -g  或者 cnpm install gulp -g

    二、项目流程

    1)、方法一

    1、生成项目所需信息文件package.json(项目目录为:F:gulpproject

    cmd窗口进入gulp(不能有大写字母)目录,输入命令 npm init(初始化文件夹),然后一直按enter键至自动生成package.json文件。

    2.项目根目录(gulpproject)下安装gulp(项目环境)

    全局安装gulp后,还需要在gulppreject根目录下在单独安装一次(每个使用gulp的项目中都需单独安装一次)。

    npm install gulp --save-dev

    3、安装所需要的自动化插件

    • 压缩js插件是 gulp-uglify
    • 压缩image插件是 gulp-image
    • 压缩css插件是 gulp-cssnano
    • 合并 gulp-concat
    • 压缩html插件是 gulp-htmlmin
    如gulp-uplify安装
    npm install gulp-uplify --save-dev
    

    4、配置gulpfile.js

    gulpfile.js是gulppreject(gulp项目)项目的配置文件。

    如果F:gulpproject有一个项目compress文件夹,包含要压缩、合并的css,js,image文件,那么就将gulpfile.js放入compress文件夹中。

    gulpfile.js配置文件:

      src里放的是文件路径,多个文件用“ , ”隔开

    var gulp = require('gulp'),
        uglify = require('gulp-uglify'),
        concat = require('gulp-concat'),
        htmlmin = require('gulp-htmlmin'),
        rename = require('gulp-rename'),
        cssnano = require('gulp-cssnano'),
        image = require("gulp-image"),
        del = require('del'),
        less = require('gulp-less');
    
    //压缩css,压缩后的文件放入dest/css
    gulp.task('minifycss', function() {
        return gulp.src('css/*.css')
            .pipe(cssnano()) //压缩
            .pipe(gulp.dest('dest/css')); //输出
    });
    //合并并压缩css,合并压缩后的文件放入dest/css
    gulp.task('concatminifycss', function() {
        return gulp.src('css/*.css')
            .pipe(concat('main.css')) //合并所有css到main.css
            .pipe(gulp.dest('dest/css')) //输出main.css到文件夹
            .pipe(rename({ suffix: '.min' })) //rename压缩后的文件名
            .pipe(cssnano()) //压缩
            .pipe(gulp.dest('dest/css')); //输出
    });
    
    gulp.task("htmlmin",function(){
        var options = {
            removeComments: true,//清除HTML注释
            collapseWhitespace: true,//压缩HTML
            collapseBooleanAttributes: true,//省略布尔属性的值 <input checked="true"/> ==> <input checked/>
            removeEmptyAttributes: true,//删除所有空格作属性值 <input id="" /> ==> <input />
            removeScriptTypeAttributes: true,//删除<script>的type="text/javascript"
            removeStyleLinkTypeAttributes: true,//删除<style>和<link>的type="text/css"
            minifyJS: true,//压缩页面JS
            minifyCSS: true//压缩页面CSS
        };
        return gulp.src('*.html')
            .pipe(htmlmin(options))
            .pipe(gulp.dest('dest/'));
    });
    
    //压缩js,压缩后的文件放入dest/js
    gulp.task('minifyjs', function() {
        return gulp.src('js/*.js')
            .pipe(uglify()) //压缩
            .pipe(gulp.dest('dest/js')); //输出
    });
    
    //合并并压缩js,合并压缩后的文件放入dest/js
    gulp.task('concatminifyjs', function() {
        return gulp.src('js/*.js')
            .pipe(concat('main.js')) //合并所有js到main.js
            .pipe(gulp.dest('dest/js')) //输出main.js到文件夹
            .pipe(rename({ suffix: '.min' })) //rename压缩后的文件名
            .pipe(uglify()) //压缩
            .pipe(gulp.dest('dest/js')); //输出
    });
    
    //压缩图片,压缩后的文件放入dest/images
    gulp.task('image', function() {
        gulp.src('img/*.+(jpg|png|gif|svg)')
            .pipe(image()) //压缩
            .pipe(gulp.dest('dest/images')); //输出
    });
    
    //执行压缩前,先删除dest文件夹里的内容
    gulp.task('clean', function(cb) {
        del(['dest/*'], cb)
    });
    
    //编译less到css
    gulp.task("less", function() {
        gulp.src('css/*.less')
            .pipe(less())
            .pipe(gulp.dest("dest/css"));
    
    });
    //监视文件的变化
    gulp.task("watch", function() {
        gulp.watch("css/*.less", ['less']);
    
    });
    
    //默认命令,在cmd中输入gulp后,执行的就是这个命令
    gulp.task('default', function() {
        // 将你的默认的任务代码放在这
        gulp.start('clean', 'concatminifycss', 'image', 'concatminifyjs', 'htmlmin');
    });

    5、执行压缩命令

    要执行gulp任务,只需切换到存放gulpfile.js文件的目录(windows平台使用cmd),然后在命令行中执行gulp命令就行了。如果gulp后面加上要执行的任务名,例如gulp clean,将执行clean任务。如果没有指定任务名,则会执行任务名为default的默认任务。

    2)、方法二

    方法一是每次使用 gulp 构建都需要将项目放到 gulp 目录下,那可不可以不放入 gulp 目录下,直接在当前目录里执行 gulp 呢?

    首先将自动化插件安装在全局环境中。即:

    如gulp-uplify安装
    npm install gulp-uplify -g
    

    然后在项目中配置gulpfile.js 文件。

    注意此时,在命令行中执行gulp可能报错。原因如:

    Ps:项目目录也不能有大写字母

    参考出处:http://www.cnblogs.com/starof/p/5194622.html

  • 相关阅读:
    数据库的字符集和校对集
    登录和退出Mysql
    启动mysql服务器
    Numpy
    如何用navicat导入数据?
    MySQL不能连接本地数据库10061
    使用navicat连接Mysql8.0出现2059错误
    leetcode笔记11 First Unique Character in a String
    leetcode笔记10 Intersection of Two Arrays(求交集)
    leetcode笔记9 Move Zeroes
  • 原文地址:https://www.cnblogs.com/intangible/p/6194662.html
Copyright © 2020-2023  润新知