gulp基本插件

gulp 是基于 nodejs 流 编写的插件

创建项目

进入项目

    npm init -y
    npm i gulp -g  (使用命令 gulp)
    npm i gulp -D   #npm i gulp@3.9.1 --save-dev     开发依赖(前端工具都是开发依赖  本地安装 代码加载模块)
    npm i axios -S   #npm i axios --save         项目依赖-线上项目依赖(线上的代码需要用到 比如 axios)
​
​
    #dev 开发环境   源代码 - 使用一个工具 gulp把代码进行压缩
    #test 测试环境
    #生产环境 线上   css,js,html 压缩   不需要使用gulp
    https://www.npmjs.com/package/gulp/v/3.9.1
​
​
   

项目根目录中创建 gulpfile.js

const gulp = require('gulp');
gulp.task('tname',function(){
    //任务代码
})
在终端中:gulp tname
​
gulp.task('tname',function(){
    //任务代码
    console.log('t1')
    console.log('t2')
    // 1-获取对应的文件
    gulp.src('src/js/*.js') //文件流
    // 2-管道里 做一个处理    压缩处理 安装插件
    // .pipe(调用一个插件)
​
    // 3-管道存放到另一个地方
    .pipe(gulp.dest('dist/js'))
​
})
​
​

安装编译压缩 scss 插件

npm install gulp-sass -D
npm install node-sass@4 -D
​
    npm install -g mirror-config-china --registry=http://registry.npm.taobao.org
    
    npm install node-sass@4
    
 
var sass = require('gulp-sass');
​
sass.compiler = require('node-sass');
​
gulp.task('sass', function () {
     gulp.src('./src/scss/**/*.scss')
      .pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
      .pipe(gulp.dest('src/css'))
      .pipe(gulp.dest('dist/css'));
});
​
​
// 监听任务
gulp.task('sass:watch', function () {
    // 监听 第一个参数 的文件, 一旦文件有变化,就执行第二个参数里的任务
   // gulp.watch('./src/scss/**/*.scss', ['sass']);
   //gulp-sass 文档使用 gulp@3  而现在安装的gulp@4
    gulp.watch('./src/scss/**/*.scss', gulp.series('sass'));
});
​

安装压缩 js 插件

 npm i gulp-uglify -D

在文件中定义任务

var gulp = require("gulp");
var uglify = require("gulp-uglify");
gulp.task("js", function () {
  console.log("js任务代码");
  gulp.src("./src/js/*.js").pipe(uglify()).pipe(gulp.dest("./dist/js"));
});

在终端中输入 gulp js 执行任务

npm install --save-dev gulp-babel @babel/core @babel/preset-env

const babel = require('gulp-babel');
gulp.task('babel', () =>
    gulp.src('src/js/**/*.js')
        .pipe(babel({
            presets: ['@babel/env']
        }))
        .pipe(gulp.dest('dist/js'))
);
// 压缩js
var uglify = require('gulp-uglify');
gulp.task('compress',function(){
    // 获取js文件
    gulp.src('./src/js/**/*.js')
    // 转译插件 高版本js 转出 es5
    .pipe(babel({
        presets: ['@babel/env']
    }))
    // es5代码 压缩
    .pipe(uglify())
    // 输出到 dist
    .pipe(gulp.dest('./dist/js'))
})

npm install gulp-concat -D

// 合并js

var concat = require('gulp-concat');

gulp.task('concat',function(){
    // 获取要合并的js文件
    gulp.src((['./src/js/a.js', './src/js/b.js']))
    // 转译
    .pipe(babel({
        presets: ['@babel/env']
    }))
    // 压缩
    .pipe(uglify())
    // 合并
    .pipe(concat('login.js'))
    // 输出
    .pipe(gulp.dest('./dist/js'))
    .pipe(gulp.dest('./src/js'))

})

npm install gulp-htmlmin -D

//gulp-htmlmin  压缩html
var htmlmin = require('gulp-htmlmin');
gulp.task('htmlmin', function() {
   gulp.src('src/**/*.html')
//    压缩html代码 去掉了 空格和换行
    .pipe(htmlmin({collapseWhitespace: true}))
    .pipe(gulp.dest('dist'));
})

npm install gulp-connect -D

var connect = require("gulp-connect");

gulp.task("connect", function () {
  gulp.src("./src/**/*.html").pipe(connect.reload());
});
//
gulp.task("server", function () {
  //  启动服务器
  connect.server({
    livereload: true,
  });
  // 监听文件的变化,一旦文件有变化就执行 后面数组的任务
    gulp.watch("./src/js/**/*.js", gulp.series("connect"));
    gulp.watch("./src/css/*.css", gulp.series("connect"));
    gulp.watch("./src/scss/*.scss", gulp.series("sass"));
    gulp.watch("src/**/*.html", gulp.series("connect"));
});

npm i gulp-imagemin -D

执行 gulp 任务报错解决, 重装 nodejs 10 https://blog.csdn.net/zxxzxx23/article/details/103000393

const imagemin = require('gulp-imagemin');
gulp.task('imagemin', function () {
    gulp.src('src/images/*')
        .pipe(imagemin())
        .pipe(gulp.dest('dist/images'))
})

打包任务

gulp.task('build', gulp.series(['js', 'sass', 'minify']), function () {

  console.log('项目的构件压缩完毕!');

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光影少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值