使用grunt合并压缩js和css文件的方法


Posted in Javascript onMarch 02, 2017

需要了解的知识:

1、nodejs的安装与命令行使用

2、nodejs安装应用

3、grunt的初步了解

本文已假定读者已经熟悉以上知识。

好,我们继续:

任务1:将src目录下的所有zepto及插件合并,并压缩。

--src/
  ajax.js
  assets.js
  callbacks.js
  data.js
  deferred.js
  detect.js
  event.js
  form.js
  fx.js
  fx_methods.js
  gesture.js
  ie.js
  ios3.js
  selector.js
  stack.js
  touch.js
  zepto.js

目录结构:

dist/
node_modules/
src/
Gruntfile.js
package.json
package.json是依赖库文件
Gruntfile.js是执行步骤程序

一、js合并压缩

第一次需要先安装grunt。执行 npm install -g grunt-cli 进行安装。如果已经安装,可以忽略。

1.package.json文件

{
 "name": "demo",
 "file": "zepto",
 "version": "0.1.0",
 "description": "demo",
 "license": "MIT",
 "devDependencies": {
  "grunt": "~0.4.1",
  "grunt-contrib-jshint": "~0.6.3",
  "grunt-contrib-concat": "~0.5.0",
  "grunt-contrib-uglify": "~0.2.1",
  "grunt-contrib-requirejs": "~0.4.1",
  "grunt-contrib-copy": "~0.4.1",
  "grunt-contrib-clean": "~0.5.0",
  "grunt-strip": "~0.2.1"
 },
 "dependencies": {
  "express": "3.x"
 }
}

 2.Gruntfile.js

module.exports = function (grunt) {
 grunt.initConfig({
 concat: {
  options: {
  },
  dist: {
   src: ['src/**/*.js'],//src文件夹下包括子文件夹下的所有文件
   dest: 'dist/built.js'//合并文件在dist下名为built.js的文件
  }
 },
 uglify: {
   build: {
    src: 'dist/built.js',//压缩源文件是之前合并的buildt.js文件
    dest: 'dist/built.min.js'//压缩文件为built.min.js
   }
  }
});
 grunt.loadNpmTasks('grunt-contrib-uglify');
 grunt.loadNpmTasks('grunt-contrib-concat');
 grunt.registerTask('default', ['concat','uglify']);
}

执行步骤:

(1)安装依赖,已安装可以忽略: npm install 。将会下载依赖的文件到node_modules目录。

(2)执行合并压缩: grunt

>grunt
Running "concat:dist" (concat) task
File dist/built.js created.
Running "uglify:build" (uglify) task
File "dist/built.min.js" created.
Done, without errors.

将会在dist目录生成

built.js
built.min.js

任务2:将src/css目录下的所有css文件合并,并压缩。

二、对CSS进行合并压缩

需要安装grunt-css。执行 npm install grunt-css 安装。安装成功,下载到 node_modules/grunt-css 。如果已经安装,可以忽略。

1、package.json同上;

2、Gruntfile.js如下:

module.exports = function (grunt) {
 grunt.initConfig({
 concat: {//css文件合并
  css: {
   src: ['src/css/*.css'],//当前grunt项目中路径下的src/css目录下的所有css文件
   dest: 'dist/all.css' //生成到grunt项目路径下的dist文件夹下为all.css
  }
 },
 cssmin: { //css文件压缩
   css: {
    src: 'dist/all.css',//将之前的all.css
    dest: 'dist/all.min.css' //压缩
   }
  }
});
grunt.loadNpmTasks('grunt-css');
grunt.loadNpmTasks('grunt-contrib-concat');
 grunt.registerTask('default', ['concat','cssmin']);
}

参考:

1、 Grunt中文网

http://www.gruntjs.net/getting-started

以上所述是小编给大家介绍的使用grunt合并压缩js和css文件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Javascript 类型转换方法
Oct 24 Javascript
js解析与序列化json数据(二)序列化探讨
Feb 01 Javascript
当jQuery1.7遇上focus方法的问题
Jan 26 Javascript
JavaScript中九种常用排序算法
Sep 02 Javascript
AngularJs bootstrap详解及示例代码
Sep 01 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
Dec 02 Javascript
javascript数据结构之串的概念与用法分析
Apr 12 Javascript
详解vue-cli3使用
Aug 14 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
Aug 19 Javascript
vue.js高德地图实现热点图代码实例
Apr 18 Javascript
layui中的switch开关实现方法
Sep 03 Javascript
使用kbone解决Vue项目同时支持小程序问题
Nov 08 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
Mar 02 #Javascript
浅谈Vue.js
Mar 02 #Javascript
利用imgareaselect辅助后台实现图片上传裁剪
Mar 02 #Javascript
详谈jQuery Ajax(load,post,get,ajax)的用法
Mar 02 #Javascript
Bootstrap入门教程一Hello Bootstrap初识
Mar 02 #Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
Mar 02 #Javascript
jQuery上传多张图片带进度条样式(DEMO)
Mar 02 #Javascript
You might like
《被神捡到的男人》动画化计划进行中!
2020/03/06 日漫
建站常用13种PHP开源CMS比较
2009/08/23 PHP
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
jQuery的.live()和.die() 使用介绍
2011/09/10 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
如何制作幻灯片(代码分享)
2017/01/06 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
微信小程序实现分页加载效果
2020/11/19 Javascript
Python交换变量
2008/09/06 Python
python的tkinter布局之简单的聊天窗口实现方法
2014/09/03 Python
Python 内置函数memoryview(obj)的具体用法
2017/11/23 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
Python爬虫设置代理IP(图文)
2018/12/23 Python
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
Python基础知识点 初识Python.md
2019/05/14 Python
python 字典的打印实现
2019/09/26 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
商务会议邀请函
2014/01/09 职场文书
介绍信范文
2015/01/31 职场文书
大学生村官个人总结
2015/02/15 职场文书
mysql主从复制的实现步骤
2021/10/24 MySQL
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技