glup基本操作

glup基本操作glup 它是一款 nodejs 应用 它是打造前端工作流的利器 打包 压缩 合并 git 远程操作 简单易用 无快不破 高质量的插件 glup 安装 npminstallgl cli npminstallsa devgulp 安装各种插件 npminstallsa 本地使用 gulpnpminsta imagemin

glup

  • 它是一款nodejs应用。
  • 它是打造前端工作流的利器,打包、压缩、合并、git、远程操作…,
  • 简单易用
  • 无快不破
  • 高质量的插件
  • ….

glup安装

$ npm install --global gulp-cli $ npm install --save-dev gulp 

安装各种插件

    npm install --save gulp            //本地使用gulp
    npm install --save gulp-imagemin   //压缩图片
    npm install --save gulp-minify-css //压缩css
    npm install --save gulp-ruby-sass  //sass
    npm install --save gulp-jshint     //js代码检测
    npm install --save gulp-uglify     //js压缩
    npm install --save gulp-concat     //文件合并
    npm install --save gulp-rename     //文件重命名
    npm install --save png-sprite      //png合并
    npm install --save gulp-htmlmin    //压缩html
    npm install --save gulp-clean      //清空文件夹
    npm install --save browser-sync    //文件修改浏览器自动刷新
    npm install --save gulp-shell      //执行shell命令
    npm install --save gulp-ssh        //操作远程机器
    npm install --save run-sequence    //task顺序执行

创建glupfile.js

# 示例1
var gulp = require('gulp');
var pug = require('gulp-pug');
var less = require('gulp-less');
var minifyCSS = require('gulp-csso');
var concat = require('gulp-concat');
var sourcemaps = require('gulp-sourcemaps');

gulp.task('html', function(){
  return gulp.src('client/templates/*.pug')
    .pipe(pug())
    .pipe(gulp.dest('build/html'))
});

gulp.task('css', function(){
  return gulp.src('client/templates/*.less')
    .pipe(less())
    .pipe(minifyCSS())
    .pipe(gulp.dest('build/css'))
});

gulp.task('js', function(){
  return gulp.src('client/javascript/*.js')
    .pipe(sourcemaps.init())
    .pipe(concat('app.min.js'))
    .pipe(sourcemaps.write())
    .pipe(gulp.dest('build/js'))
});

gulp.task('default', [ 'html', 'css', 'js' ]);

glup 语法

  • glup.src() 转化的文件
gulp.src(globs[, options]) globs : String or Array glup.src('client/template/*.jade') .pipe(jade()) .pipe(minify()) .pipe(glup.dest('build/minifiled_templates')) // 示例 client/ a.js bob.js bad.js glup.src(['client/*.js', '!client/b*.js', 'client/bad.js']) // 要所有.js结尾的文件, 不要以b开头的 , 要bad.js 
  • glup.dest() 数据流变成文件
gulp.dest(path[, options]) path: String or Function gulp.src('./client/templates/*.jade') .pipe(jade()) .pipe(gulp.dest('./build/templates')) // 路径 .pipe(minify()) .pipe(gulp.dest('./build/minified_templates')); // 放置路径 
  • glup.task() 声明一个任务
gulp.task(name [, deps, fn]) name: String 不应该有空格 deps: Array fn: Function gulp.task('somename', function() { // Do ... }); gulp.task('mytask', ['array', 'of', 'task', 'names'], function() { // Do stuff }); 
  • glup.watch() 监控文件的变动
gulp.watch(glob[, opts], tasks) glob: String or Array tasks: Array var watcher = gulp.watch('js//*.js', ['uglify','reload']); watcher.on('change', function(event) { console.log('File ' + event.path + ' was ' + event.type + ', running tasks...'); }); 

glup使用案例

  • demo1目录结构如下。把demo1中的 index.html压缩,把src里面的less编译、合并、压缩、重命名、存储到dist。src里面的图片压缩、合并存储到dist。src里面的js做代码检查,压缩,合并,存储到dist。
    + demo1
        + dist
            + css
                - merge.min.css
            + js
                - merge.min.js
            + imgs
                - 1.png
                - 2.png
            - index.html
        + src
            + css
                - a.css
                - b.css
            + js
                - a.js
                - b.js
            + imgs
                - 1.png
                - 2.png
            - index.html

    # glupfile.js
    var gulp = require('gulp');
    // 引入组件
    var minifycss = require('gulp-minify-css'), // CSS压缩
        uglify = require('gulp-uglify'), // js压缩
        concat = require('gulp-concat'), // 合并文件
        rename = require('gulp-rename'), // 重命名
        clean = require('gulp-clean'), //清空文件夹
        minhtml = require('gulp-htmlmin'), //html压缩
        jshint = require('gulp-jshint'), //js代码规范性检查
        imagemin = require('gulp-imagemin'); //图片压缩


    gulp.task('html', function() {
      return gulp.src('src/*.html')
        .pipe(minhtml({collapseWhitespace: true}))
        .pipe(gulp.dest('dist'));
    });

    gulp.task('css', function(argument) {
        gulp.src('src/css/*.css')
            .pipe(concat('merge.css'))
            .pipe(rename({
                suffix: '.min'
            }))
            .pipe(minifycss())
            .pipe(gulp.dest('dist/css/'));
    });
    gulp.task('js', function(argument) {
        gulp.src('src/js/*.js')
            .pipe(jshint())
            .pipe(jshint.reporter('default'))
            .pipe(concat('merge.js'))
            .pipe(rename({
                suffix: '.min'
            }))
            .pipe(uglify())
            .pipe(gulp.dest('dist/js/'));
    });

    gulp.task('img', function(argument){
        gulp.src('src/imgs/*')
            .pipe(imagemin())
            .pipe(gulp.dest('dist/imgs'));
    });

    gulp.task('clear', function(){
        gulp.src('dist/*',{read: false})
            .pipe(clean());
    });

    gulp.task('build', ['html', 'css', 'js', 'img']);

$ glup build
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210481.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午7:34
下一篇 2026年3月19日 上午7:35


相关推荐

  • java实现debounce_Debounce

    java实现debounce_Debounce##Debounce仅在过了一段指定的时间还没发射数据时才发射一个数据![debounce](https://box.kancloud.cn/401d51d142852785a558f9eb59212243_1508x584.png)`Debounce`操作符会过滤掉发射速率过快的数据项。RxJava将这个操作符实现为`throttleWithTimeout`和`debounce`。注意:这个操…

    2022年6月20日
    25
  • XML空格符

    XML空格符转载 https www jianshu com p 74cdf 四分之一中文空格 中文半角空格 中文全角空格 英文半角空格 nbsp nbsp nbsp no breakspace 英文半角空格 不换行

    2026年3月19日
    3
  • Java集合之WeakHashMap[通俗易懂]

    Java集合之WeakHashMap[通俗易懂]WeakHashMap继承于AbstractMap,同时实现了Map接口。和HashMap一样,WeakHashMap也是一个散列表,存储的内容也是键值对key-value映射,并且键和值都可以是null。WeakHashMap的键都是弱键,给定一个键,其映射的存在并不阻止垃圾回收器对该键的丢弃,使该键成为可终止,然后被回收。弱键的原理就是Entry继承了WeakReference接口,当G

    2022年5月31日
    33
  • tdscdma手机linux,全方位介绍——TD-SCDMA无线技术(1)[通俗易懂]

    tdscdma手机linux,全方位介绍——TD-SCDMA无线技术(1)[通俗易懂]全方位介绍——TD-SCDMA无线技术(1)无线3G中的TD-SCDMA无线技术绝对是中国人所关注的重点,不仅仅因为它是我国自主研发的,更因为它是结合了多种高端无线通信技术的联合体。那么,本文将为大家详细介绍TD-SCDMA无线技术的知识。一,TD-SCDMA无线技术是什么?TD是TD-SCDMA——TimeDivision-SynchronousCodeDivisionMultiple…

    2022年10月4日
    3
  • idea是什么软件_总结IDEA开发的26个常用设置

    idea是什么软件_总结IDEA开发的26个常用设置IDEA软件设置Settings页面Settings是对软件本身的一些属性进行配置,例如字体主题背景图插件等。如何打开Settings设置页面Settings设置页面结构详解结构Appearance&Behavior外观和行为Keymap快捷键Editor编辑器设置Plugins插件VersionControl版本控制Build,Execution,Deployme…

    2022年8月29日
    8
  • 讲一个故事:Redis的默认端口是6379「建议收藏」

    讲一个故事:Redis的默认端口是6379「建议收藏」意大利歌舞女Alessia
    Merz,DDDD(懂得都懂) 手机九键Merz对应6379 感兴趣也可以看看这个有关redis开发人员相关的自述

    2025年12月7日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号