我的Grunt之旅-初识gruntfile文件
时间:2018-03-06 18:23 事件:配置 gruntfile.js文件
首先,回忆一下之前的点,grunt项目下面必须有两个文件 ,第一个 package.json ,第二个 Gruntfile.js。其中,package.json文件中可以列举一些需要用的grunt插件(说明:https://docs.npmjs.com/files/package.json)。
cmd窗口进入grunt项目目录,最好自己先弄一份package文件,不要用系统自己生成的,列举出需要的 grunt插件,然后执行命令 npm install ,这是,会自动安装package文件中列举的插件。
插件安装完成之后,开始做准备工作,首先准备一个src文件夹,里面放置 三个js(等会儿要合并)。
打开Gruntfile文件开始配置。 如下
module.exports = function(grunt) {
grunt.initConfig({
//配置都写在这里面,
//首先读取项目配置信息,都在package文件中
pkg: grunt.file.readJSON('package.json'),
//使用contact配置为任务定义相对应的配置(我们这里的任务是合并三个js文件,相关的 属性的定义可以查看对应的grunt文档)
concat:{
options:{
//定义一个用于输入合并文件之间的字符
separator:';'
},
dist:{
//将要被合并的文件的目录以及文件类型
src:['src/**/*.js'],
//合并后文件的放置位置及合并后文件的名称(pkg.name 就是 package文件中的name属性,前面已经读取package文件了 pkg: grunt.file.readJSON('package.json'),所以可以用pkg.name)
dest:'dist/<%= pkg.name %>'
}
},
//任务的配置设定好之后,来执行任务 使用uglify来执行
uglify: {
options: {
// 此处定义的banner注释将插入到输出文件的顶部
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
dist:{
files:{
//dist执行合并操作,
'dist/<%= pkg.name %>.min.js':['<%= concat.dist.dest %>']
}
}
},
//使用jshint检查一下js的语法和风格
jshint:{
files:'src/**/*.js',//files后面也可以跟数组比如 files:['src/**/*.js','Gruntfile.js']
options:{
globals:{
//这里是一些更改默认配置的操作,如果使用默认配置,可以不做任何操作
jQuery: true,
}
}
}
});
// 加载包含 "uglify" 任务的插件。
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-concat');
// 自定义一个test的任务,可以使用 grunt test 命令来执行,
grunt.registerTask('test', ['jshint']); //数组里面代表着test任务将要执行的操作 这里执行的检查操作
// 默认被执行的任务列表。 default 任务是默认任务 ,可以直接使用 grunt 命令来执行
grunt.registerTask('default', ['jshint', 'concat', 'uglify']);
}
我的Grunt之旅-初识gruntfile文件的更多相关文章
- grunt压缩多个js文件和css文件
压缩前的工程目录: 1.安装js,css需要的插件 使用npm安装:npm install grunt-contrib-uglify --save-dev -------->安装js压缩插件 ...
- grunt concat针对有依赖文件的js脚本的合并
grunt concat针对有依赖文件的js脚本的合并: 在一个入口文件index.js里,有很多依赖文件,主要分两类,一类是和主文件同目录,另一类是其他目录下的js(cmd.非cmd的js文件,一般 ...
- Linux初识(命令, 文件, 系统管理)
Linux初识(命令, 文件) 文件系统 在Linux系统下,没有驱动器磁盘,只有一个根目录 / ,所有的文件都在根目录下面. 相关文件夹介绍 bin : 程序相关 boot : 开机启动相关 cdr ...
- ☀【Grunt】package.json, Gruntfile.js, npm install, grunt
npm install --registry http://registry.npm.taobao.org/ 切换源 Grunt.js 在前端项目中的实战http://beiyuu.com/grunt ...
- 前端开发环境之GRUNT自动WATCH压缩JS文件与编译SASS文件环境下Ruby安装sass常见错误分析
前言: 1.sass编译为css文件,早先时刻写css,后来看了sass挺不错的,于是在新的项目中开始使用上了sass.(grunt需要ruby环境,所以需要先安装ruby,sass环境) ①安装ru ...
- 我的Grunt之旅-序章
时间:2018-03-05 13:52 事件:安装Grunt 相关网址: grunt官网:https://gruntjs.com node.js下载地址 :https://nodejs.org/en ...
- 黏包-黏包的成因、解决方式及struct模块初识、文件的上传和下载
黏包: 同时执行多条命令之后,得到的结果很可能只有一部分,在执行其他命令的时候又接收到之前执行的另外一部分结果,这种显现就是黏包. 只有TCP协议中才会产生黏包,UDP协议中不会有黏包(udp协议中数 ...
- grunt 自定义任务实现js文件的混淆及加密
//自定义任务 module.exports = function (grunt) { // 项目配置 var http = require('http'); var qs = require('qu ...
- C++学习 之 初识头文件
声明: 本人自学C++, 没有计算机基础,在学习的过程难免会出现理解错误,出现风马牛不相及的现象,甚至有可能会贻笑大方. 如果有幸C++大牛能够扫到本人的博客,诚心希望大牛能给予 ...
随机推荐
- springBoot+MybatisPlus数据库字段使用驼峰命名法时报错
假如有个实体类: package com.jeff.entity; public class User { /** * 主键id */ private Integer id; /** * 登陆名 */ ...
- ThinkPHP6源码分析之应用初始化
ThinkPHP6 源码分析之应用初始化 官方群点击此处. App Construct 先来看看在 __construct 中做了什么,基本任何框架都会在这里做一些基本的操作,也就是从这里开始延伸出去 ...
- 番外篇!全球首个微信应用号开发教程!小程序 DEMO 视频奉上!
大家好,我是博卡君.经过国庆节的七天假期,相信很多朋友都已经研究出自己的小程序 demo 了吧?我最近也利用休息时间关注了一下网上关于小程序开发的讨论,今天就利用这个番外篇谈谈自己对小程序的一些想法吧 ...
- [转载] 由浅入深聊聊Golang的map
https://blog.csdn.net/u011957758/article/details/82846609 几个我忽略的点 基础 map中value的默认值 key与value的限制 valu ...
- Mybatis plus 插入数据时将自动递增的主键手动进行赋值设置
1.首先设置好实体类:将类型设置为 @TableId(type = IdType.INPUT) 2.在插入数据前将id赋值给实体类对象即可
- nginx 的请求处理阶段
nginx处理的11个阶段 nginx处理用户请求的流程 接收用户请求头部之后 1 .匹配对应得location 2.是否进行限速 3.验证用户是否有权限访问该资源:和判断是否是盗链的请求 4.生成用 ...
- 十二 Spring的AOP开发入门,整合Junit单元测试(AspectJ的XML方式)
创建web项目,引入jar包 引入Spring配置文件
- 【转】CentOS6开启BBR加速
1.查看机器内核 BBR 算法需要 Linux 4.9 及以上的内核支持,所以想要使用该方式的需要先升级内核版本. 在 Cent OS 7 上的 Linux 内核是 3.10, 使用 uname -r ...
- Linux命令:tcpdump命令
tcpdump网络抓包工具 格式:tcpdump [options] [表达式] optinos选项 -i any:监听所有网络接口 -i eth0:监听指定的网络接口(eth0) -D:列出所有可用 ...
- nodejs中this详解
最近在用Nodejs进行APP运维服务管理系统开发时发现,nodejs中的this经常会变,查了下资料后发现this在不同的代码位置中代表不同的涵义,在实际运用过程中可以用var self = thi ...