gulp前端构建简单教程

一、安装gulp环境

1、下载安装nodejs

gulp基于node.js,要通过nodejs的npm安装gulp,所以先要安装nodejs环境,通过英文官网下载或者中文网下载安装。

node.js插件在windows系统下是个.msi工具,只要一直下一步即可,软件会自动在写入环境变量中,这样就能在cmd命令窗口中直接使用node或npm命令。npm更多介绍见文章最后附件部分。

2、全局安装gulp

首先确保你已经正确安装了nodejs环境。然后用以下命令全局方式安装gulp。

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

注:cnpm为淘宝镜像,用法和npm一样,安装指令如下:

npm install -g cnpm --registry=https://registry.npm.taobao.org

输入“cnpm -v”可以查看版本号。

二、项目流程

比如我的项目目录为:E:\gulpproject

1、生成项目所需信息文件package.json

cmd窗口进入gulpproject目录,输入命令

npm init

生成package.json文件。

2、项目根目录下安装gulp

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

执行命令

npm install gulp --save-dev

完成后会生成node_modules文件夹。

3、安装项目所需自动化插件

安装插件的命令:

#安装gulp-uglify示例
npm install gulp-uglify --save-dev

多个插件统一安装命令:

npm install gulp-watch gulp-sass gulp-htmlmin gulp-imagemin imagemin-pngquant gulp-cache gulp-clean-css gulp-make-css-url-version gulp-autoprefixer gulp-concat gulp-uglify gulp-rename --save-dev

4、配置项目的gulpfile.js

gulpfile.js是gulp项目的配置文件,里面包含的是task的配置。最简单的gulpfile.js配置如下:该配置文件定义了一个默认任务。gulp中文AIP查看

var gulp = require(‘gulp‘);
gulp.task(‘default‘,function(){
        console.log(‘hello world‘);
});

项目中用到哪些功能可加入配置文件。

var gulp = require(‘gulp‘),
    uglify = require(‘gulp-uglify‘),
    concat = require(‘gulp-concat‘),
    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‘));//输出
});

//压缩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(‘images/*.+(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‘);
});

5、执行压缩命令

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

三、插件

5、配置全局参数

当gulpfile.js太大时就不好维护了,此时可以将需要在gulpfile中引用的参数,放到这里,包括一些路径,功能的开关等。例如:config.js内容如下:

module.exports = {
    name : ‘.....‘,
    devPath : ‘.....‘,    //项目根路径,根路径下可以包含多个项目
    prodPath : ‘....‘, //生产路径根路径
    sassPath : ‘.....‘, //SASS包含文件路径
    rmHtmlWhitespace : false,//html中是否去除空格
    webpackEntry : {
        index : ‘index.js‘//js合并
    },
    server : {
        port : 8088
    }
};

注意下这里使用了module.exports,这是nodejs的语法。在gulpfile中将会用require引用config。

//加载项目配置
var config = require(‘./config‘);

 

分享到:

发表评论

电子邮件地址不会被公开。 必填项已用*标注