zoukankan      html  css  js  c++  java
  • grunt安装和使用教程

    grunt的安装

    npm intall -g grunt-cli

    新建文件夹grunt,在本地文件中添加package.json和Gruntfile.js文件,其中package.json文件的配置如下

    //package.json
    {
    "name": "grunt",
    "version": "0.1.0",
    "description": "demo",
    "license": "MIT",
    "devDependencies": {
    }
    }
    

    本地安装 npm install grunt-cli --save-dev 

    //package.json
    {
    "name": "grunt",
    "version": "0.1.0",
    "description": "demo",
    "license": "MIT",
    "devDependencies": { "grunt": "^1.0.1"}}
    

    安装grunt插件

    grunt-contrib-concat合并两个文件 

    grunt-contrib-uglify文件压缩插件

    grunt-contrib-jshint js代码错误检测

    grunt-contrib-watch 监控

    //package.json 安装插件后
    {
    "name": "grunt",
    "version": "0.1.0",
    "description": "demo",
    "license": "MIT",
    "devDependencies": {
    "grunt": "^1.0.1",
    "grunt-contrib-concat": "^1.0.1",
    "grunt-contrib-jshint": "^1.1.0",
    "grunt-contrib-uglify": "^2.0.0"
    }
    }
    

    Gruntfile.js的配置

    module.exports = function(grunt) {
    // Project configuration.
    grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
    //grunt.file.readJSON('package.json') 将存储在package.json文件中的JSON元数据引入到grunt config中。 由于<% %>模板字符串可以引用任意的配置属性,因此可以通过这种方式来指定诸如文件路径和文件列表类型的配置数据,从而减少一些重复的工作
    //如下表示的是在压缩的代码前添加表头以项目的name 年月日构成
    options: { banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */
    ' },
    build: { src: 'src/<%= pkg.name %>.js', dest: 'build/<%= pkg.name %>.min.js' }
    }
    });
    // 加载包含 "uglify" 任务的插件。
    grunt.loadNpmTasks('grunt-contrib-uglify');
    // 默认被执行的任务列表。
    grunt.registerTask('default', ['uglify']); };
    

    执行以后如下图

    压缩的文件的表头为 /*! grunt 2017-01-02 */

    jshint

    新建文件为 .jshintrc 其内容根据要检查的js决定,具体的js的检验可以在深入学习这里只是举了几个例子
    {
    //curly 表示所有的代码块必须使用大括号
    “curly”: true,
    eqeqeq 表示判断相等时,必须使用 ===
    “eqeqeq”: true,
    immed 表示立即执行函数必须用括号包起来 (function () { } ());
    “immed”: true,
    noarg 表示禁止使用 arguments.caller和arguments.callee
    “noarg”: true,
    noempty 表示禁止出现空的代码块 { }
    “noempty”: true,
    //quotmark 是引号的使用规则,有以下四个选项
    //false : 不检查
    //true : 检查一致性(要么都是单引号,要么都是双引号)
    //single : 必须都是单引号
    //double : 必须都是双引号
    “quotmark”: “single”,
    //undef 表示所有的局部变量都必须先声明再使用
    “undef”: true,
    //unused 表示禁止变量已经声明,但却不使用
    “unused”: true,
    //node 表明你的项目是NodeJS项目,require等node特有的全局函数将通过检查
    “node”: true
    }
    
    module.exports = function(grunt) {
    // Project configuration.
    grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
    options: {
    banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */
    '
    },
    build: {
    src: 'src/bbb.js',
    dest: 'build/<%= pkg.name %>-<%=pkg.version %>.min.js'
    }
    },
    jshint: {
    files: ['Gruntfile.js', 'src/bbb.js'],
    options: {
    jshintrc:'.jshintrc'
    }
    }
    });
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.registerTask('default', ['jshint', 'uglify']);
    };

    concat

    /**
    * Created by lenovo on 2017/1/2.
    */
    module.exports = function(grunt) {
    // Project configuration.
    grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
    options: {
    banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */
    '
    },
    build: {
    src: 'src/bbb.js',
    dest: 'build/<%= pkg.name %>-<%=pkg.version %>.min.js'
    }
    },
    jshint: {
    files: ['Gruntfile.js', 'src/bbb.js'],
    options: {
    jshintrc:'.jshintrc'
    }
    },
    concat: {
    options: {
    separator: ';'
    },
    dist: {
    src: ['src/*.js'],
    dest: 'dist/<%= pkg.name %>.js'
    }
    },
    });
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.registerTask('default', ['jshint', 'uglify','concat']);
    };
    
  • 相关阅读:
    idea设置全局ignore
    win 2012 安装mysql 5.7.20 及报错 This application requires Visual Studio 2013 Redistributable. Please ins
    win 2012 安装mysql 5.7.20 及报错 This application requires Visual Studio 2013 Redistr
    kafka 删除 topic
    java编译中出现了Exception in thread “main" java.lang.UnsupportedClassVersionError
    Centos中使用yum安装java时,没有jps的问题的解决
    Spring 整合Junit
    Spring纯注解配置
    Spring 基于注解的 IOC 配置
    打印java系统的信息
  • 原文地址:https://www.cnblogs.com/heyinwangchuan/p/6231262.html
Copyright © 2011-2022 走看看