初识gulp

npm init -y
# 这里我其实没有安装成功,最终是使用cnpm i gulp -D安装的
yarn add gulp -D

修改package.json

{
	"scripts": {
   	 	"build": "gulp"
  	}
}

配置gulpfile.js

// 引用gulp的一些方法
// src用于指定处理文件的源目录,dest用于指定处理后的文件保存的位置,series串行执行,watch 监听文件的执行
const { src, dest, series, watch } = require('gulp');

// 简化写法,例如:gulp-uglify可以不引入,直接写为plugins.uglify
const plugins = require('gulp-load-plugins')();

// 压缩js uglifyjs
function js(cb) {
  src('js/*.js')
    // 对选择的文件进行下一个环节
    .pipe(plugins.uglify())
    // 输出的目录
    .pipe(dest('./dist/js'));
  cb();
}

// 编译scss、less,压缩,并输出css
function css() {}

// 监听这些文件的变化
function watcher() {}

// 删除dist目录内容
function clean() {}

exports.scripts = js;
// 默认的处理
exports.default = function(cb) {
  console.log('hello world!');
  cb();
};

可以在这个网页搜索插件:
gulp plugins
也可以在npm中搜索

一些插件:

  • gulp-uglify 压缩混淆
  • gulp-rename
  • del
  • gulp-autoprefixer
  • gulp-sass
  • gulp-load-plugins
# 查看任务
npx gulp --tasks 

# 安装相关的依赖
yarn add gulp-sass gulp-autoprefixer gulp-load-plugins gulp-uglify del -D

yarn add browser-sync -D

最终,实现监听事件文件变化并动态刷新页面的代码:

// 引用gulp的一些方法
// src用于指定处理文件的源目录,dest用于指定处理后的文件保存的位置,series串行执行,watch 监听文件的执行
const { src, dest, series, watch } = require('gulp');
const del = require('del');
const browserSync = require('browser-sync').create();
const reload = browserSync.reload;

// 简化写法,例如:gulp-uglify可以不引入,直接写为plugins.uglify
const plugins = require('gulp-load-plugins')();

// 压缩js uglifyjs
function js(cb) {
  src('js/*.js')
    // 对选择的文件进行下一个环节
    .pipe(plugins.uglify())
    // 输出的目录
    .pipe(dest('./dist/js'))
    .pipe(reload({ stream: true }));
  cb();
}

// 编译scss、less,压缩,并输出css
function css(cb) {
  src('css/*.scss')
    .pipe(
      plugins.sass({
        outputStyle: 'compressed'
      })
    )
    .pipe(
      plugins.autoprefixer({
        // 是否美化属性值
        cascade: false,
        // remove移除过时的前缀
        remove: false
      })
    )
    .pipe(dest('./dist/css'))
    .pipe(reload({ stream: true }));
  cb();
}

// 监听这些文件的变化
function watcher(cb) {
  watch('./js/*.js', js);
  watch('./css/*.scss', css);
  cb();
}

// 删除dist目录内容
function clean(cb) {
  del('./dist');
  cb();
}

function serve(cb) {
  browserSync.init({
    server: {
      baseDir: './'
    }
  });
  cb()
}

// exports.scripts = js;
// exports.style = css;
// exports.clean = clean;
// exports.watcher = watcher;
// 默认的处理
// exports.default = function(cb) {
//   console.log('hello world!');
//   cb();
// };

exports.default = series([clean, js, css,serve, watcher,]);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值