如何使用 grunt 插件压缩合并 css ?加快页面渲染速度的秘诀
发布于 作者:苏南大叔 来源:程序如此灵动~本文中,苏南大叔描述如何利用grunt
处理css
文件。注意:本文仅描述普通的css
文件,不涉及less
/scss
/sass
等编译类型的css
相关语言。主要的目的,就是压缩合并处理css
文件。以求达到减少页面内的资源请求数量的目的。
描述的主战场依然是Gruntfile.js
这个配置文件,本文的测试环境是:grunt 1.3.1
。
安装grunt
构建工具
grunt
构建工具的安装,是有些奇怪的。需要全局安装grunt-cli
,然后本地安装grunt
。本篇文章里面,不做详细描述。可以参考下面这个链接:
安装css相关插件
本文涉及的两个grunt
插件是:grunt-contrib-cssmin
和grunt-contrib-concat
。但是grunt-contrib-concat
已经在上一篇文章中安装过了。
可能涉及的命令行如下,注意要在Gruntfile.js
所在的目录执行安装。不解释。
npm install grunt-contrib-cssmin --save
npm install grunt-contrib-concat --save
配置Gruntfile.js
Gruntfile.js
有关css的处理,一共有两部分。
一部分是cssmin
,用于压缩css
文件。一部分是contact
,用于合并css
文件。
module.exports = function (grunt) {
pkg: grunt.file.readJSON('package.json');
grunt.initConfig({
concat: {
css: {
//src: ["build/*.min.css"],
src:["build/bootstrap.min.css",
"build/style.min.css",
"build/animate.min.css",
],
dest: 'dest/all.min.css'
}
},
cssmin: {
target: {
files: [{
expand: true,
cwd: 'lib/bootstrap-3.3.7/css/',
src: ['bootstrap.css'],
dest: 'build',
ext: '.min.css'
},{
expand: true,
cwd: 'css/',
src: ['style.css'],
dest: 'build',
ext: '.min.css'
},{
expand: true,
cwd: 'css/',
src: ['animate.css'],
dest: 'build',
ext: '.min.css'
},
]
}
},
});
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.registerTask('default', ['cssmin','concat']);
}
grunt.registerTask('default', ['cssmin','concat'])
,这一条default
任务,就是由'cssmin'和'concat',这两部分所组成的。- 这个
cssmin
的插件配置,有些繁杂些。不如js
的配置简单。循环体部分是:
{
expand: true,
cwd: 'css/',
src: ['animate.css'],
dest: 'build',
ext: '.min.css'
}
就是说:把<cwd>/<src>'文件,压缩成为
concat
这个部分,比较简单了。苏南大叔提示,需要注意的就是支持在src
中设置合并的顺序。
可能存在的问题
因为css
文件,是可以引入图片文件的。那么上述操作之后,对应的图片和css的相对路径关系,已经发生了变化。这是非常常见的事情。那么,除了要注意调整 concat
的src
顺序外,还需要注意调整图片和all.min.css
的相对关系。
这里可能存在的问题,就是:使用压缩合并后的css
文件,会导致css中的图片背景丢失的问题。这里大家需要特别注意。
执行grunt
获得all.min.css
执行grunt
命令,就可以获得all.min.css
了。
grunt
总结
使用grunt
压缩合并css
的操作,和压缩合并js
的操作,基本类似。都是分为min
压缩和contact
合并两部分。唯一需要注意的就是,相关资源的引用问题。js
的这种问题,并不明显。但是css
的图片问题,比较明显罢了。
更多grunt
经验文字,请点击:https://newsn.net/tag/grunt 。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。