使用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 相关文章推荐
JQuery为textarea添加maxlength属性的代码
Apr 07 Javascript
jQuery实现鼠标可拖动调整表格列宽度
May 26 Javascript
JavaScript iframe数据共享接口实现方法
Jan 06 Javascript
jquery实现文本框textarea自适应高度
Mar 09 Javascript
详解Bootstrap插件
Apr 25 Javascript
artDialog+plupload实现多文件上传
Jul 19 Javascript
用jquery快速解决IE输入框不能输入的问题
Oct 04 Javascript
bootstrap警告框示例代码分享
May 17 Javascript
seajs模块压缩问题与解决方法实例分析
Oct 10 Javascript
javascrpt密码强度校验函数详解
Mar 18 Javascript
JavaScript经典案例之简易计算器
Aug 24 Javascript
Vue+Openlayers自定义轨迹动画
Sep 24 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
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
2018/08/20 PHP
PDO::rollBack讲解
2019/01/29 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
Laravel如何实现自动加载类
2019/10/14 PHP
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
js拖动div 当鼠标移动时整个div也相应的移动
2013/11/21 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
jQuery Mobile页面返回不需要重新get
2016/04/26 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
bootstrap手风琴制作方法详解
2017/01/11 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
2017/09/26 Javascript
Vue 实现前端权限控制的示例代码
2019/07/09 Javascript
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
Python程序设计入门(2)变量类型简介
2014/06/16 Python
python非递归全排列实现方法
2017/04/10 Python
Python3安装Scrapy的方法步骤
2017/11/23 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
在python shell中运行python文件的实现
2019/12/21 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
用canvas显示验证码的实现
2020/04/10 HTML / CSS
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
求职者应聘的自我评价
2013/10/16 职场文书
出纳岗位职责范本
2013/12/01 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
走进科学观后感
2015/06/18 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python
js 数组 fill() 填充方法
2021/11/02 Javascript
MySQL事务的隔离级别详情
2022/07/15 MySQL