时间: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文件的更多相关文章

  1. grunt压缩多个js文件和css文件

    压缩前的工程目录: 1.安装js,css需要的插件 使用npm安装:npm install grunt-contrib-uglify --save-dev  -------->安装js压缩插件 ...

  2. grunt concat针对有依赖文件的js脚本的合并

    grunt concat针对有依赖文件的js脚本的合并: 在一个入口文件index.js里,有很多依赖文件,主要分两类,一类是和主文件同目录,另一类是其他目录下的js(cmd.非cmd的js文件,一般 ...

  3. Linux初识(命令, 文件, 系统管理)

    Linux初识(命令, 文件) 文件系统 在Linux系统下,没有驱动器磁盘,只有一个根目录 / ,所有的文件都在根目录下面. 相关文件夹介绍 bin : 程序相关 boot : 开机启动相关 cdr ...

  4. ☀【Grunt】package.json, Gruntfile.js, npm install, grunt

    npm install --registry http://registry.npm.taobao.org/ 切换源 Grunt.js 在前端项目中的实战http://beiyuu.com/grunt ...

  5. 前端开发环境之GRUNT自动WATCH压缩JS文件与编译SASS文件环境下Ruby安装sass常见错误分析

    前言: 1.sass编译为css文件,早先时刻写css,后来看了sass挺不错的,于是在新的项目中开始使用上了sass.(grunt需要ruby环境,所以需要先安装ruby,sass环境) ①安装ru ...

  6. 我的Grunt之旅-序章

    时间:2018-03-05 13:52  事件:安装Grunt 相关网址: grunt官网:https://gruntjs.com node.js下载地址 :https://nodejs.org/en ...

  7. 黏包-黏包的成因、解决方式及struct模块初识、文件的上传和下载

    黏包: 同时执行多条命令之后,得到的结果很可能只有一部分,在执行其他命令的时候又接收到之前执行的另外一部分结果,这种显现就是黏包. 只有TCP协议中才会产生黏包,UDP协议中不会有黏包(udp协议中数 ...

  8. grunt 自定义任务实现js文件的混淆及加密

    //自定义任务 module.exports = function (grunt) { // 项目配置 var http = require('http'); var qs = require('qu ...

  9. C++学习 之 初识头文件

    声明:            本人自学C++, 没有计算机基础,在学习的过程难免会出现理解错误,出现风马牛不相及的现象,甚至有可能会贻笑大方. 如果有幸C++大牛能够扫到本人的博客,诚心希望大牛能给予 ...

随机推荐

  1. php 算法知识 猴子选大王

    一群猴子排成一圈,按1,2,...,n依次编号. 然后从第1只开始数,数到第m只,把它踢出圈, 从它后面再开始数,再数到第m只,在把它踢出去..., 如此不停的进行下去,直到最后只剩下一只猴子为止,那 ...

  2. centos初始化脚本

    centos初始化脚本 添加IP.主机名.挂载/dev/sdb1磁盘 #!/bin/bash # ip=$ hostname=$ if [ -z $ip ] || [ -z $hostname ]; ...

  3. 投资人分享答疑----HHR计划----以太直播课第三课

    分享大纲:(祥峰投资) 一,投资人会看什么: 1,赛道定位:“生意”还是“独角兽-to be”? 2,如何退出?上市还是收购? 3,  团队能力,愿景力 4,壁垒:数据和价值 5,价格 二,融资需要准 ...

  4. 【剑指Offer面试编程题】题目1362:左旋转字符串--九度OJ

    题目描述: 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S=&qu ...

  5. Tomcat服务更新流程:

    Tomcat服务更新流程: 1.把需要更新的war包放在服务器/servers/tomcat9/update下.2.负载均衡服务上把要更新的服务器权重值调为0,即服务不转在这台要更新的服务器上.(重要 ...

  6. Python学习第十四课——面向对象基本思想part1

    面向对象的基本思想 # 写法1 person1 = { 'name': 'hanhan', ', 'sex': '男' } def xue_xi(person): print('%s在学习' % pe ...

  7. Linux运维工程师简历项目经验

    如何做好一个合格的运工程师,运维工程师前景怎么样呢?就这些问题,与大家交流一下.首先对于运维工程师的要求是十分严苛的了,运维工程师不但要针对不同的问题做出响应,而且需要不断的补充自己的知识面,并不继提 ...

  8. sparkRDD:第4节 RDD的依赖关系;第5节 RDD的缓存机制;第6节 DAG的生成

    4.      RDD的依赖关系 6.1      RDD的依赖 RDD和它依赖的父RDD的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide dependency ...

  9. Python 基础之函数初识与函数参数

    一.函数初识 定义:满足某一个方法 满足某一个功能#(1)功能(包裹一部分代码 实现某一个功能 达成某一个目的)#(2)可以反复调用,提高代码的复用性,提高开发效率,便于维护管理#(3)函数的基本格式 ...

  10. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 按钮:制作一个大按钮

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...