gulp的使用

作者:凌杰林

用自动化构建工具增强你的工作流程!用gulp简化你的开发。

安装

1.官网安装Node.js

Node.js的安装工作…

2.安装gulp到本地

npm install gulp -g

3.进入到你想开发项目的目录

cd (该目录的路径)

4.初始化当前目录

npm init

在这里插入图片描述

在这里插入图片描述

会自动生成package.json文件保存当前项目的配置信息

5.在当前项目安装gulp到本地

npm install gulp --save-dev

–save:将这个文件,安装到本地的当前文件夹

-dev:将安装gulp的信息保存在packjson.json里面

6.可选择其它版本的gulp

删除目录下的node_modules文件夹以及package.json的gulp版本号。

在这里插入图片描述

npm install gulp@3.9.1 --save-dev

或者更简单的指令

npm i gulp@3.9.1 -D

7.在与package.json同级的目录下创建gulpfile.js文件

8.启动任务

const gulp = require("gulp");
gulp.task("hello", function(done) {
    console.log("hello world");
    done();
})

9.命令行执行该任务

gulp hello

前期的准备工作已经结束!

下面是一个demo

目录结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码

//整理.html文件
gulp.task("copy-html", function() {
        return gulp.src("index.html")
            .pipe(gulp.dest("dist/"))
            .pipe(connect.reload());
    })
//拷贝img里面所有格式图片到dist下的images
//"img/**/*.jpg"
//"img/**/*.{jpg,png}"
gulp.task("images", function() {
    return gulp.src("img/**/*").pipe(gulp.dest("dist/images")).pipe(connect.reload());
})
//拷贝数据
gulp.task("data", function() {
        return gulp.src(["json/*.json", "xml/*.xml", "!xml/04.xml"]).pipe(gulp.dest("dist/data")).pipe(connect.reload());
    })

插件的安装

npm i 插件名字 -D  或者npm install 插件名字 --save-dev

通过require引入插件

const rename = require(“gulp-rename”);

项目代码

const gulp = require("gulp");
//下面为引入的插件
const sass = require("gulp-sass");//sass语法
const minifycss = require("gulp-minify-css");//压缩css代码
const rename = require("gulp-rename");//重命名
const concat = require("gulp-concat");//合并js代码
const uglify = require("gulp-uglify");//压缩js代码
const connect = require("gulp-connect");

//启动任务
gulp.task("hello", function(done) {
    console.log("hello world");
    done();
})

//整理.html文件
gulp.task("copy-html", function() {
        return gulp.src("index.html")
            .pipe(gulp.dest("dist/"))
            .pipe(connect.reload());
    })
    /*
      静态文件
      拷贝图片
     */
gulp.task("images", function() {
    return gulp.src("img/**/*").pipe(gulp.dest("dist/images")).pipe(connect.reload());
})
gulp.task("data", function() {
        return gulp.src(["json/*.json", "xml/*.xml", "!xml/04.xml"]).pipe(gulp.dest("dist/data")).pipe(connect.reload());
    })
    //     gulp.watch(["json/*.json", "xml/*.xml", "!xml/04.xml"], async() => {

//         gulp.src(["json/*.json", "xml/*.xml", "!xml/04.xml"])

//         .pipe(gulp.dest("dist/data"));

//     });

// });



gulp.task("sass", function() {
    return gulp.src("stylesheet/index.scss")
        .pipe(sass())
        .pipe(gulp.dest("dist/css"))
        .pipe(minifycss())
        .pipe(rename("index.min.css"))
        .pipe(gulp.dest("dist/css"))
        .pipe(connect.reload());
})
gulp.task("scripts", function() {
    return gulp.src("javascript/*.js")
        .pipe(concat("index.js"))
        .pipe(gulp.dest("dist/js"))
        .pipe(uglify())
        .pipe(rename("index.min.js"))
        .pipe(gulp.dest("dist/js")).pipe(connect.reload());
});
gulp.task("watch", async function() {

    gulp.watch("index.html", async function(cb) {
        gulp.src("index.html")
            .pipe(gulp.dest("dist/"));
        cb();

    });
    gulp.watch("img/**/*", async function(cb) {
        gulp.src("img/**/*")
            .pipe(gulp.dest("dist/images")).pipe(connect.reload());
        cb();

    });
    gulp.watch(["json/*.json", "xml/*.xml", "!xml/04.xml"], function(cb) {

        gulp.src(["json/*.json", "xml/*.xml", "!xml/04.xml"])

        .pipe(gulp.dest("dist/data"));
        cb();
    });
    gulp.watch("javascript/*.js", async function(cb) {

        // gulp.src("javascript/*.js")
        //     .pipe(gulp.dest("dist/js"))
        gulp.src("javascript/*.js")
            .pipe(concat("index.js"))
            .pipe(gulp.dest("dist/js"))
            .pipe(uglify())
            .pipe(rename("index.min.js"))
            .pipe(gulp.dest("dist/js")).pipe(connect.reload())

        cb();
    });
    gulp.watch("stylesheet/index.scss", async function(cb) {

        // gulp.src("stylesheet/index.scss")

        // .pipe(gulp.dest("dist/css"));
        gulp.src("stylesheet/index.scss")
            .pipe(sass())
            .pipe(gulp.dest("dist/css"))
            .pipe(minifycss())
            .pipe(rename("index.min.css"))
            .pipe(gulp.dest("dist/css"))
            .pipe(connect.reload());
        cb();
    });
});
gulp.task("server", function() {
    connect.server({
        root: "dist",
        port: 8888,
        livereload: true
    })
})
gulp.task("build", gulp.series("data", "images", "copy-html", "scripts", "sass", function(cb) {
    cb();
}));
gulp.task("default", gulp.series("watch", "server", function(cb) { cb(); }))


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个使用 `gulp-useref` 并过滤指定 js 文件的示例: ```javascript const gulp = require('gulp'); const useref = require('gulp-useref'); gulp.task('build', function() { return gulp.src('src/*.html') .pipe(useref({ searchPath: ['src', '.'] })) // 过滤掉不需要处理的 js 文件 .pipe(gulp.dest('dist')); }); ``` 在这个示例中,我们使用 `gulp-useref` 来处理 HTML 文件,并将注释块中引用的 JS、CSS 文件合并到一个或多个文件中。同时,我们通过 `searchPath` 属性指定了搜索路径,这样 `gulp-useref` 就能够正确地解析 HTML 文件中的相对路径了。 接着,我们通过 `pipe` 方法将处理后的文件输出到 `dist` 目录中。在这个过程中,我们也可以使用 `gulp-if` 来过滤掉不需要处理的文件。例如,如果我们只想处理所有 `src` 目录下的 JS 文件,可以这样写: ```javascript const gulp = require('gulp'); const useref = require('gulp-useref'); const gulpIf = require('gulp-if'); gulp.task('build', function() { return gulp.src('src/*.html') .pipe(useref({ searchPath: ['src', '.'] })) // 只处理 src 目录下的 js 文件 .pipe(gulpIf('**/*.js', gulp.dest('dist'))) .pipe(gulp.dest('dist')); }); ``` 在这个示例中,我们使用 `gulp-if` 来过滤掉不需要处理的 JS 文件,而只处理 `src` 目录下的 JS 文件。这样,我们就能够只处理我们需要的文件了。 希望这个回答能够帮到你,如果你还有其他问题,可以继续问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值