使用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 相关文章推荐
一个多次搜索+多次传值的解决方案
Jan 20 Javascript
用dom+xhtml+css制作的一个相册效果代码打包下载
Jan 24 Javascript
JavaScript中null与undefined分析
Jul 25 Javascript
flash 得到自身url参数的代码
Nov 15 Javascript
JavaScript Eval 函数使用
Mar 23 Javascript
jquery图片放大镜功能的实例代码
Mar 26 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
Jul 02 Javascript
Knockout数组(observable)使用详解示例
Nov 15 Javascript
javascript实现存储hmtl字符串示例
Apr 25 Javascript
限制复选框最多选择项的实现代码
May 30 Javascript
JS实现前端动态分页码代码实例
Jun 02 Javascript
解决Vue项目中tff报错的问题
Oct 21 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
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
PHP加密解密实例分析
2015/12/25 PHP
JS小框架 fly javascript framework
2009/11/26 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
2017/03/02 Javascript
详谈Angular路由与Nodejs路由的区别
2017/03/05 NodeJs
JavaScript手风琴页面制作
2017/05/17 Javascript
Promise.all中对于reject的处理方法
2018/08/01 Javascript
Vue实现简单分页器
2018/12/29 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
Vue项目中Api的组织和返回数据处理的操作
2019/11/04 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
Flask框架各种常见装饰器示例
2018/07/17 Python
如何在python字符串中输入纯粹的{}
2018/08/22 Python
Pandas Shift函数的基础入门学习笔记
2018/11/16 Python
python样条插值的实现代码
2018/12/17 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
新护士岗前培训制度
2014/02/02 职场文书
酒店开业策划方案
2014/06/02 职场文书
婚前协议书范本
2014/10/27 职场文书
2014年大学班长工作总结
2014/11/14 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
2017新年晚会开幕词
2016/03/03 职场文书
Python编程编写完善的命令行工具
2021/09/15 Python
关于CentOS 8 搭建MongoDB4.4分片集群的问题
2021/10/24 MongoDB