美文网首页前端攻城狮
gulp:压缩css、合并压缩js、压缩图片、Less使用

gulp:压缩css、合并压缩js、压缩图片、Less使用

作者: 苹果咏 | 来源:发表于2018-01-09 10:05 被阅读0次

A、CSS压缩

1、安装Nodejs

2、全局安装gulp

npm install gulp -g

3、在项目目录下安装gulp

npm install gulp --save-dev

4、配置package.json文件
在项目目录执行,依次输入即可

npm ini


    {

        "name":"gulp_test",/*项目名,切记这里命名不要与模块一样,如命名为gulp,要地安装gulp时就会出错*/

        "version":"1.0.0",/*版本号*/

        "description":"",/*描述*/

        "main":"index.js",

        "scripts": {

        "test":"echo \"Error:notestspecified\" && exit 1"

        },

        "author":"",/*作者*/

        "license":"ISC"/*项目许可协议*/

    }

5、本地安装css压缩插件

npm install --save-dev gulp-minify-css

6、项目根目录创建gulpfile.js文件



    // 获取 gulp

    var gulp = require('gulp')

    // 获取 minify-css 模块(用于压缩 CSS)

    var minifyCSS = require('gulp-minify-css')

    // 压缩 css 文件

    // 在命令行使用 gulp css 启动此任务

    gulp.task('css', function () {

    // 1. 找到文件

    gulp.src('css/*.css')

    // 2. 压缩文件

    .pipe(minifyCSS())

    // 3. 另存为压缩文件

    .pipe(gulp.dest('dist/css'))

    })

    // 在命令行使用 gulp auto 启动此任务

    gulp.task('auto', function () {

    // 监听文件修改,当文件被修改则执行 css 任务

    gulp.watch('css/*.css', ['css'])

    });

    // 使用 gulp.task('default') 定义默认任务

    // 在命令行使用 gulp 启动 css 任务和 auto 任务

    gulp.task('default', ['css', 'auto'])

7、运行gulp看结果

直接命令行运行gulp,退出监听按ctrl+c

B、图片压缩
1、安装图片压缩插件

npm install gulp-imagemin –save-dev
npm install imagemin-pngquant –save-dev

2、配置gulpfile.js

可以参考这个gulpt图片压缩

深度压缩

var gulp = require('gulp'),

imagemin = require('gulp-imagemin'), //确保本地已安装

pngquant = require('imagemin-pngquant');

gulp.task('testImagemin', function () { 
    gulp.src('src/img/*.{png,jpg,gif,ico}') 
        .pipe(imagemin({ 
                        progressive: true, 
                        svgoPlugins: [{removeViewBox: false}],//不要移除svg的viewbox属性 
                        use: [pngquant()] //使用pngquant深度压缩png图片的imagemin插件 
        })) 
                        .pipe(gulp.dest('dist/img')); 
});

添加执行程序

gulp.task('default',function(){ gulp.start('css','Imagemin'); });

C、Less

参考这篇文章gulp-less

字符串匹配

D、JS合并压缩
1、合并
安装插件

npm install gulp-concat --save-dev

编辑gulpfile.js

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

gp.task("taskName",function(){
    // 把1.js和2.js合并为main.js,输出到dest/js目录下
    gp.src(['1.js','2.js']).pipe(concat('main.js')).pipe(gp.dest('./dest/js'));
})

命令行执行

gulp taskName

2、压缩

npm install gulp-uglify --save-dev
var gp = require('gulp');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
gp.task("taskName",function(){
    // 把1.js和2.js合并压缩为main.js,输出到dest/js目录下
    gp.src(['1.js','2.js']).pipe(concat('main.js')).pipe(uglify()).pipe(gp.dest('./dest/js'));
})

可以吧gulp在项目中生成的文件直接复制到新项目,这样就不用安装了,直接在该项目目录下运行就好。

基础常用配置

const plugins = require('gulp-load-plugins')()
const gulp = require('gulp');
// const args = require('yargs').argv; //用于获取启动参数,针对不同参数,切换任务执行过程时需要
const uglify = require('gulp-uglify') //js压缩
const sass = require('gulp-sass'); //将sass预处理为css
const cssMinify = require("gulp-minify-css"); //压缩css
const autoprefixer = require('gulp-autoprefixer'); //解决内核前缀
const imagemin = require('gulp-imagemin'); //压缩图片
const pngquant = require('imagemin-pngquant'); //深度压缩
const cache = require('gulp-cache'); //只压缩没压缩过的,压缩过的从缓存中获取
const rename = require('gulp-rename'); //重命名
const browserSync = require('browser-sync'); //监听文件的更改并且自动刷新页面
const concat = require('gulp-concat'); //合并文件
const notify = require('gulp-notify'); // 提示
const reload = browserSync.reload; //静态文件服务器,同时也支持浏览器自动刷新
// const ngConstant = require('gulp-ng-constant');
const del = require('del'); //删除build文件(当css,img,js出现删除操作的时候,虽然watch会监听,但是并不会删除相应文件。)



const paths = {
    appDir: "./app/",
    outputDir: "./dist/",
    sassSrc: {
        input: './app/css/*.scss',
        output: './dist/css/',
    },
    imgSrc: {
        input: ['./app/img/*.png', './app/img/*.jpg'],
        output: './dist/img/'
    },
    jsSrc: {
        input: ['./app/js/*.js'],
        output: './dist/js/'
    },
    watch: {
        sass: ['./app/**/*.scss'],
        css: ['./app/app.css'],
        html: ['app/**/*.html', 'app/*html'],
        js: ['app/**/*.js', '!app/**/*.js']
    },
    copySrc: ['./app/**/*', '!./app/scss', '!./app/scss/*.*', '!./app/**/*.scss', '!./app/**/package.json', '!./app/**/bower.json']
};

//JS处理
gulp.task('minifyjs', function() {
    return gulp.src(paths.jsSrc.input) //选择合并的JS
        .pipe(concat('order_query.js')) //合并js
        .pipe(rename({ suffix: '.min' })) //重命名
        .pipe(uglify()) //压缩
        .pipe(gulp.dest('dist/js')) //输出 
        .pipe(notify({ message: "js task ok" })); //提示
});




//转换成css,加css前缀,压缩
gulp.task('sass', function() {
    return gulp.src(paths.sassSrc.input)
        .pipe(sass())
        .pipe(autoprefixer({
            browsers: ['last 2 versions', 'Android >= 4.0'],
            cascade: false, //是否美化属性值(对齐) 默认:true
        }))
        .pipe(cssMinify()) //gulp-minify-css压缩比gulp-sass自带压缩效率好
        .pipe(gulp.dest(paths.sassSrc.output))
});


// 压缩图片
gulp.task('images', function() {
    return gulp.src(paths.imgSrc.input)
        .pipe(cache(imagemin({
            progressive: true,
            use: [pngquant()]
        })))
        .pipe(gulp.dest(paths.imgSrc.output))
});

gulp.task('default', ['sass', 'images', 'minifyjs']);
gulp.task('build', ['sass', 'images', 'minifyjs']);

相关文章

  • 前端自动化工具|gulp新手入门

    gulp是前端自动化工具,它可以进行html压缩、css压缩合并、js检查压缩、图片压缩、编译less、编译...

  • gulp-css压缩

    gulp是什么?使用 gulp 实现图片压缩、CSS 压缩合并、JS 压缩合并 gulp是一个基于流的构建工具,可...

  • Gulp总结

    # gulp 前端自动化构建工具,可以进行文本合并,文件拷贝,js压缩,css压缩,图片压缩等。 ### 入门 1...

  • gulp:压缩css、合并压缩js、压缩图片、Less使用

    A、CSS压缩 1、安装Nodejs 2、全局安装gulp 3、在项目目录下安装gulp 4、配置package....

  • Web性能优化

    1、压缩及合并资源使用webpack或Parcel压缩图片、合并CSS和JS文件在线压缩图片网站:https://...

  • Gulp总结

    gulp 前端自动化构建工具,可以进行文本合并,文件拷贝,js压缩,css压缩,图片压缩等。 入门 全局安装 gu...

  • gulp浅显易懂的入门

    gulp是什么? gulp是工具链、构建工具,可以配合各种插件做js压缩,css压缩,less编译 替代手工实现自...

  • Gulp 使用gulp压缩CSS

    我们除了可以使用 gulp 压缩 JS 文件,还可以压缩 CSS,压缩 CSS 代码可以降低 CSS 文件的大小,...

  • Gulp 使用gulp压缩CSS

    我们除了可以使用 gulp 压缩 JS 文件,还可以压缩 CSS,压缩 CSS 代码可以降低 CSS 文件的大小,...

  • 优化资源

    文件最小化/文件压缩 js和css文件通过gulp,webpack等工具合并、压缩,减少用户流量,小图片可以在打包...

网友评论

    本文标题:gulp:压缩css、合并压缩js、压缩图片、Less使用

    本文链接:https://www.haomeiwen.com/subject/xwhwnxtx.html