使用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实现 在光标处插入指定内容
May 25 Javascript
extjs 学习笔记(二) Ext.Element类
Oct 13 Javascript
Javascript 中的 && 和 || 使用小结
Apr 25 Javascript
Jquery Change与bind事件代码
Sep 29 Javascript
js日期相关函数总结分享
Oct 15 Javascript
在JavaScript的正则表达式中使用exec()方法
Jun 16 Javascript
Bootstrap每天必学之前端开发框架
Nov 19 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
Jun 06 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
Jun 12 Javascript
layui之select的option叠加问题的解决方法
Mar 08 Javascript
javascript跳转与返回和刷新页面的实例代码
Nov 20 Javascript
JS+CSS实现炫酷光感效果
Sep 05 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
谈一谈收音机的高放电路
2021/03/02 无线电
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
2007/01/29 PHP
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
PHP生成Gif图片验证码
2013/10/27 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
php中stream(流)的用法
2014/03/25 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
在WordPress中获取数据库字段内容和添加主题设置菜单
2016/01/11 PHP
PHP命名空间定义与用法实例分析
2019/08/14 PHP
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
HTML5实现留言和回复页面样式
2015/07/22 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
2015/12/15 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
2017/11/07 Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
2017/11/22 Javascript
基于node.js实现微信支付退款功能
2017/12/19 Javascript
layer.open关闭父窗口 以及调用父页面的方法
2018/08/17 Javascript
Angular Material Icon使用详解
2018/11/07 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
[45:15]Optic vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
Python与R语言的简要对比
2017/11/14 Python
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
2019/07/31 Python
python基于gevent实现并发下载器代码实例
2019/11/01 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
python 递归相关知识总结
2021/03/03 Python
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
小学老师寄语大全
2014/04/04 职场文书
门前三包责任书
2014/04/15 职场文书
行政秘书工作自我鉴定
2014/09/15 职场文书
试用期转正员工自我评价
2014/09/18 职场文书
2015年秋季运动会加油稿
2015/07/22 职场文书