使用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 相关文章推荐
php gethostbyname获取域名ip地址函数详解
Jan 24 Javascript
jQuery1.4.2与老版本json格式兼容的解决方法
Feb 12 Javascript
javascript中比较字符串是否相等的方法
Jul 23 Javascript
js用Date对象的setDate()函数对日期进行加减操作
Sep 18 Javascript
Javascript中判断对象是否为空
Jun 10 Javascript
Bootstrap php制作动态分页标签
Dec 23 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
Jun 28 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
Sep 15 Javascript
JS实现手写parseInt的方法示例
Sep 24 Javascript
利用node实现一个批量重命名文件的函数
Dec 21 Javascript
JavaScript对象拷贝与赋值操作实例分析
Dec 10 Javascript
基于JS实现快速读取TXT文件
Aug 25 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
新版PHP极大的增强功能和性能
2006/10/09 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
Extjs表单常见验证小结
2014/03/07 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
原生JS实现隐藏显示图片 JS实现点击切换图片效果
2021/01/27 Javascript
javascript数组定义的几种方法
2017/10/06 Javascript
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
如何获取TypeScript的声明文件.d.ts
2018/05/01 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
vue ssr 指南详读
2018/06/29 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
[47:45]Liquid vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中logging模块的用法实例
2014/09/29 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
对Python中type打开文件的方式介绍
2018/04/28 Python
Python实现的求解最大公约数算法示例
2018/05/03 Python
解决pycharm界面不能显示中文的问题
2018/05/23 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
美国领先的商务贺卡出版商:The Gallery Collection
2018/02/13 全球购物
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
测控技术与仪器个人求职信范文
2013/12/30 职场文书
大学秋游活动方案
2014/02/11 职场文书
开学季活动策划方案
2014/02/28 职场文书
文明城市标语
2014/06/16 职场文书
刑事代理授权委托书
2014/09/17 职场文书
公务员个人总结
2015/02/12 职场文书
护士辞职信怎么写
2015/02/27 职场文书
《分数的意义》教学反思
2016/02/20 职场文书