gulp 實(shí)現(xiàn) js、css,img 合并和壓縮

  1. 安裝nodejs;

  2. 新建package.json文件;

  3. 全局安裝gulp;
    全局安裝gulp目的是為了通過她執(zhí)行g(shù)ulp任務(wù): cnpm install gulp -g

  4. 新建package.json文件
    cnpm init

  5. 本地安裝gulp
    為了能正常使用,我們還得本地安裝gulp:cnpm install gulp --save-dev

  6. 安裝gulp插件;

cnpm install gulp-htmlmin gulp-imagemin imagemin-pngcrush gulp-minify-css gulp-jshint gulp-uglify gulp-concat gulp-rename gulp-notify --save-dev
  1. 新建gulpfile.js文件;
// 在你的項(xiàng)目根目錄下創(chuàng)建gulpfile.js,代碼如下:
 // 引入 gulp
    var gulp = require('gulp');
     
    // 引入組件
    var htmlmin = require('gulp-htmlmin'), //html壓縮
        imagemin = require('gulp-imagemin'),//圖片壓縮
        pngcrush = require('imagemin-pngcrush'),
        minifycss = require('gulp-minify-css'),//css壓縮
        jshint = require('gulp-jshint'),//js檢測
        uglify = require('gulp-uglify'),//js壓縮
        concat = require('gulp-concat'),//文件合并
        rename = require('gulp-rename'),//文件更名
        notify = require('gulp-notify');//提示信息
     
    // 壓縮html
    gulp.task('html', function() {
      return gulp.src('src/*.html')
        .pipe(htmlmin({collapseWhitespace: true}))
        .pipe(gulp.dest('./dest'))
        .pipe(notify({ message: 'html task ok' }));
     
    });
     
    // 壓縮圖片
    gulp.task('img', function() {
      return gulp.src('src/images/*')
        .pipe(imagemin({
            progressive: true,
            svgoPlugins: [{removeViewBox: false}],
            use: [pngcrush()]
        }))
        .pipe(gulp.dest('./dest/images/'))
        .pipe(notify({ message: 'img task ok' }));
    });
     
    // 合并、壓縮、重命名css
    gulp.task('css', function() {
      return gulp.src('src/css/*.css')
        .pipe(concat('main.css'))
        .pipe(gulp.dest('dest/css'))
        .pipe(rename({ suffix: '.min' }))
        .pipe(minifycss())
        .pipe(gulp.dest('dest/css'))
        .pipe(notify({ message: 'css task ok' }));
    });
     
    // 檢查js
    gulp.task('lint', function() {
      return gulp.src('src/js/*.js')
        .pipe(jshint())
        .pipe(jshint.reporter('default'))
        .pipe(notify({ message: 'lint task ok' }));
    });
     
    // 合并、壓縮js文件
    gulp.task('js', function() {
      return gulp.src('src/js/*.js')
        .pipe(concat('all.js'))
        .pipe(gulp.dest('dest/js'))
        .pipe(rename({ suffix: '.min' }))
        .pipe(uglify())
        .pipe(gulp.dest('dest/js'))
        .pipe(notify({ message: 'js task ok' }));
    });
     
    // 默認(rèn)任務(wù)
    gulp.task('default', function(){
      gulp.run('img', 'css', 'lint', 'js', 'html');
     
      // 監(jiān)聽html文件變化
      gulp.watch('src/*.html', function(){
        gulp.run('html');
      });
     
      // Watch .css files
      gulp.watch('src/css/*.css', ['css']);
     
      // Watch .js files
      gulp.watch('src/js/*.js', ['lint', 'js']);
     
      // Watch image files
      gulp.watch('src/images/*', ['img']);
    }); 
  1. 通過命令提示符運(yùn)行g(shù)ulp任務(wù)。
    gulp default
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 眾所周知目前比較火的工具就是gulp和webpack,但webpack和gulp卻有所不同,本人兩者的底層研...
    cduyzh閱讀 1,444評論 0 13
  • 簡介:gulp是前端開發(fā)過程中對代碼進(jìn)行構(gòu)建的工具,是自動(dòng)化項(xiàng)目的構(gòu)建利器;她不僅能對網(wǎng)站資源進(jìn)行優(yōu)化,而且在開發(fā)...
    情懷水岸閱讀 889評論 0 5
  • 什么是GULP? GULP 是前端開發(fā)過程中對代碼進(jìn)行構(gòu)建的工具,是自動(dòng)化項(xiàng)目的構(gòu)建利器;她不僅能 對...
    碧玉含香閱讀 709評論 0 0
  • 1、gulp的安裝 首先確保你已經(jīng)正確安裝了nodejs環(huán)境。然后以全局方式安裝gulp: npm install...
    F_imok閱讀 2,483評論 1 11
  • 在學(xué)習(xí)前,先談?wù)劥笾率褂胓ulp的步驟,給讀者以初步的認(rèn)識。首先當(dāng)然是安裝nodejs,通過nodejs的npm全...
    amazing_bing閱讀 1,095評論 0 1

友情鏈接更多精彩內(nèi)容