使用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控制css中的float的代码
Aug 16 Javascript
js 实现无缝滚动 兼容IE和FF
Jul 15 Javascript
心扬JS分页函数代码
Sep 10 Javascript
JavaScript 选中文字并响应获取的实现代码
Aug 28 Javascript
uploadify在Firefox下丢失session问题的解决方法
Aug 07 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
Oct 25 Javascript
Javascript 链式作用域详细介绍
Feb 23 Javascript
微信小程序 实现点击添加移除class
Jun 12 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
Oct 26 Javascript
js中apply()和call()的区别与用法实例分析
Aug 14 Javascript
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
Aug 16 Javascript
vue项目上传Github预览的实现示例
Nov 06 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简单命令代码集锦
2007/09/24 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
PHP实现简单ajax Loading加载功能示例
2016/12/28 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
2019/05/29 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
javascript模拟订火车票和退票示例
2014/04/24 Javascript
5款JavaScript代码压缩工具推荐
2014/07/07 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
jquery实现图片放大镜功能
2015/11/23 Javascript
jsTree使用记录实例
2016/12/01 Javascript
Vue.directive()的用法和实例详解
2018/03/04 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
2020/04/30 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
[17:36]VG战队纪录片
2014/08/21 DOTA
[52:14]VG vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
python 接口返回的json字符串实例
2018/03/27 Python
TensorFlow实现指数衰减学习率的方法
2020/02/05 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
Python列表推导式实现代码实例
2020/09/09 Python
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
Java的类可以定义为Protected或者Private得吗
2015/09/25 面试题
英文翻译的自我评价语句
2013/10/04 职场文书
事务机电主管工作职责
2014/02/25 职场文书
学生不讲诚信检讨书
2014/09/29 职场文书
自荐信范文
2019/05/20 职场文书
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS