使用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 相关文章推荐
js中function()使用方法
Dec 24 Javascript
JavaScript分析、压缩工具JavaScript Analyser
Dec 31 Javascript
JS判断图片是否加载完成方法汇总(最新版)
May 13 Javascript
详解Vue方法与事件
Mar 09 Javascript
JavaScript数据结构之链表的实现
Mar 19 Javascript
bootstrapvalidator之API学习教程
Jun 29 Javascript
微信小程序promsie.all和promise顺序执行
Oct 27 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
Dec 25 jQuery
Angularjs实现多图片上传预览功能
Jul 18 Javascript
浅谈Webpack核心模块tapable解析
Sep 11 Javascript
vue的keep-alive用法技巧
Aug 15 Javascript
element-ui 弹窗组件封装的步骤
Jan 22 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
Apache实现Web Server负载均衡详解(不考虑Session版)
2013/07/05 PHP
thinkphp中ajax与php响应过程详解
2014/12/08 PHP
Yii2数据库操作常用方法小结
2017/05/04 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
JS获取下拉列表所选中的TEXT和Value的实现代码
2014/01/11 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
javascript 闭包详解
2015/07/02 Javascript
DOM中事件处理概览与原理的全面解析
2016/08/16 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
codeMirror插件使用讲解
2017/01/16 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
Vue触发隐藏input file的方法实例详解
2019/08/14 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
2020/11/09 Javascript
[02:54]DOTA2亚洲邀请赛 VG战队出场宣传片
2015/02/07 DOTA
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
Windows8下安装Python的BeautifulSoup
2015/01/22 Python
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
浅析python实现scrapy定时执行爬虫
2018/03/04 Python
Python实现将json文件中向量写入Excel的方法
2018/03/26 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
python 将日期戳(五位数时间)转换为标准时间
2019/07/11 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
警察思想汇报
2014/01/04 职场文书
公司薪酬管理制度
2014/01/31 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
简单租房协议书范本
2014/08/20 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏
根德5570型九灯四波段立体声收音机是电子管收音机的楷模 ? 再论5570
2022/04/05 无线电