grunt前端自动构建工具初级使用
好啦,今天来和大家谈谈grunt
害怕与社会脱轨,所以自己研究了一下,简单说说我梳理完的grunt
首先要知道为什么使用grunt
1.grunt可以检测js、css文件内部是否有错误
2. grunt可以进行js、css\html...的压缩
3. grunt可以watch这些文件,就是监控这些文件,就像sass一样,源文件有变换,转化后的css会跟着变。也就是说,js、或css等源文件有变化,压缩的文件会跟着变
首先,grunt和vue一样,环境用的node,也需要全局安装
npm install -g grunt-cli
想要知道自己的grunt是否安装成功,可以执行
npm grount -version
然后在使用grunt之前,我们还需要准备两个文件
第一步:cd xxx 找到你的目的文件第二部:npm init(填写项目信息)
| 
 name: (GruntT)      // 模块名称:只能包含小写字母数字和中划线,如果为空则使用项目文件夹名称代替 
version: (0.0.0)     // 版本号 
description:       // 描述:会在npm搜索列表中显示 
entry point: (index.js) // 模块入口文件 
test command:       // 测试脚本 
git repository:      // git仓库地址 
keywords:         // 关键字:用于npm搜索,多个关键字用空格分开 
author:          // 作者 
license: (BSD-2-Clause)  // 开原协议 
 | 
npm install grunt --save-dev
(将安装的grunt添加到 package.json中)
npm install --save-dev grunt-contrib-concat grunt-contrib-jshint grunt-contrib-sass grunt-contrib-uglify grunt-contrib-htmlmin grunt-contrib-cssmin grunt-contrib-imagemin grunt-contrib-watch grunt-contrib-connect ( 像我一样懒得可以用这种方法,Grunt 的基本所需插件一次安装)
npm install grunt-contrib-csslint --save-dev
(压缩css,其他的雷同)
module.exports = function(grunt) {
	//导入要用的模块
	grunt.loadNpmTasks('grunt-contrib-uglify');
	grunt.loadNpmTasks('grunt-contrib-cssmin');
	grunt.loadNpmTasks('grunt-contrib-htmlmin');
	grunt.loadNpmTasks('grunt-contrib-imagemin');
	grunt.loadNpmTasks('grunt-contrib-watch');
	grunt.loadNpmTasks('grunt-contrib-jshint');
	grunt.loadNpmTasks('grunt-contrib-csslint');
	grunt.loadNpmTasks('grunt-contrib-concat');
	//配置具体任务
	grunt.initConfig({
		uglify: { //主任务
			a: { //分任务
				expand: true, //分开执行
				src: 'js/*.js', //源文件地址
				dest: 'build' //导入到那个文件中
			}
		},
		cssmin: {
			a: {
				expand: true, //分开执行
				src: 'css/*.css',
				dest: 'build'
			}
		},
		htmlmin: {
			options: {
				removeComments: true, //去注释
				collapseWhitespace: true //去空格
			},
			a: {
				src: 'index.html',
				dest: 'build/index.html'
			}
		},
		imagemin: {
			a: {
				expand: true, //分开执行
				cwd: 'images',
				src: ['**/*.{png,jpg}'],
				dest: 'build'
			}
		},
		watch: { //监听
			a: {
				files: ['index.html', 'css/*.css'],
				tasks: ['cssmin', 'htmlmin']
			}
		}
	});
	//注册一个默认任务
//	grunt.registerTask('default', ['cssmin']);
//	grunt.registerTask('default', ['htmlmin']);
//	grunt.registerTask('default', ['watch']);
//	grunt.registerTask('default', ['uglify']);
//	grunt.registerTask('default', ['jshint']);
//	grunt.registerTask('default', ['concat']);
	grunt.registerTask('default', ['uglify', 'cssmin', 'htmlmin', 'watch']);   
};
grunt 命令(执行默认的任务) ,当然你也可以只执行一类,比如:grunt jshint
grunt前端自动构建工具初级使用的更多相关文章
- 前端自动构建工具@gulp入门
		
gulp是一个自动化的前端工具.它可以利用自身的插件来实现一些功能,如sass.less编译:浏览器自动刷新,文件压缩.重命名.代码校验(个人使用sublime的插件进行校验)等功能.当然这些功能也可 ...
 - 前端自动构建工具Gulp入门
		
基于nodeJs:通过不同插件能自动完成一系列动作,比如压缩js/css/img.解析模版标签.解析less等: 一.安装gulp 安装nodeJs 打开Node.js command prompt ...
 - 前端自动化构建工具——gulp
		
gulp是基于流的前端自动化构建工具. 一.环境配置 gulp是基于nodejs的,所以没有 nodejs 环境的要先去安装好 然后给系统配上gulp环境 npm install -g gulp 再到 ...
 - 前端自动化构建工具gulp的使用总结
		
前端自动化构建工具gulp的使用总结 博主最近偶的空闲,在此对gulp的使用做一个总结,让小伙伴知道如何合理的使用gulp以及gulp的使用技巧. 谈到gulp,有人可能就会想到另外一个构建工具gru ...
 - 前端开发构建工具gulp的安装使用
		
曾几何时还在使用grunt作为前端的构建工具,直到有一天同事向我推荐了gulp,在这里博主将不讨论gulp与grunt各自优势的比较,只为大家介绍gulp如何安装和使用. Gulp 是用 nodejs ...
 - 前端自动化构建工具 Gulp 使用
		
一个月没写博客了,今天有时间,就写个gulp的入门使用吧.. 简介:gulp是一个前端自动化构建工具,可以实现代码的检查.压缩.合并……等等,gulp是基于Node.js的自动任务运行器 一.安装No ...
 - gulp前端自动化构建工具新手入门篇
		
很久没有更新博文了. 经过了一次年前吐血的赶项目,终于在年后回血了.趁着有空,新学到了一个前端自动化构建工具-gulp. 现在我们通过这3个问题来学习一下: 1.什么是gulp? 2.为什么要用gul ...
 - Grunt和Gulp构建工具在Visual Studio 2015中的高效的应用
		
Grunt和Gulp构建工具在Visual Studio 2015中的高效的应用 Grunt和Gulp是Javascript世界里的用来做自动压缩.Typescript编译.代码质量lint工具.cs ...
 - 自动构建工具Gulp
		
摘要: gulp与grunt一样,都是自动构建工具.和grunt相比它更突出一个流的概念,任务是一个接一个执行的.今天就分享如何用gulp做自动化. 安装: gulp也是基于node环境,所以安装g ...
 
随机推荐
- spring与logstash整合,并将数据传输到Elasticsearch
			
logstash是一个开源的数据收集引擎,支持各种输入选择,能够同时从多个来源采集数据,将数据转发到想存储的“库”中,例如,可以转发存储到Elasticsearch,也可以转发到kafka等消息中间件 ...
 - 基于djiango实现简易版的图书管理系统
			
介绍: 本程序仅仅实现图书数据的增删查 树形结构如下 全部代码如下: url: from django.urls import path from front import views as fr ...
 - Spring 梳理-AOP
			
界面应用场景 日志.声明式事务.安全.缓存 AOP功能演化图 图片引用地址:https://www.cnblogs.com/best/p/5679656.html AOP设计模式-代理模式 静态代理: ...
 - 使用ImageIO.write上传二维码文件时候,提示系统找不到指定路径
			
报错如图所示: java.io.FileNotFoundException: E:\SF\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtp ...
 - 深入集合类系列——ArrayList和Vector的区别
			
区别: 1)Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性 ...
 - jQuery返回顶部和在线客服网站侧边栏
			
效果图: 全部代码: <!DOCTYPE html> <html> <head> <title></title> <style typ ...
 - java程序猿如何练习java版的易筋经?
			
故事背景 电视剧<天龙八部>中,阿朱易容后进入少林寺偷走了<易筋经>,她一直想把这本书送给乔峰.耿直的乔峰觉得此书来历不正,不肯接受.几番波折,这本书最后落到聚贤庄庄主游坦之手 ...
 - 设计时数据源:在PostgreSql 数据查询中使用参数过滤
			
在上一篇文章中,我们学习了如何设计时连接PostgreSQL 数据库及环境搭建.本节我们来学习使用PostgreSql 数据源时,创建数据集时带参数过滤的查询语句写法. 在报表中包含两种参数,可参考博 ...
 - Transactional事务提交后触发异步方法
			
一.问题复现 1.场景 2个service方法, 方法A中调用方法B. 方法A 是核心业务方法,涉及多张表数据变更,为了保持数据一致,用spring事务注解:@Transactional(rollba ...
 - ELK 学习笔记之 Logstash之inputs配置
			
Logstash之inputs配置: input plugin doc: https://www.elastic.co/guide/en/logstash/current/index.html 插件很 ...