zoukankan      html  css  js  c++  java
  • 3、GruntJs做JavaScript代码校验、自动化

    首先grunt是JavaScript的脚手架,先node官网安装node;

    安装好node之后,可以使用node、npm功能;

    grunt要了解有:grunt cli、task runner、plugins三个。

    1. GruntJS CLI

    全局安装 grunt-cli 包,这样在任何目录下都可以调用grunt命令。

    npm install grunt-cli -g

    2. GruntJS Task Runner

    新建项目文件夹b,进入项目路径

    mkdir b
    cd b

    创建package.json文件,设置入口js

    npm init
    entry point: (index.js) 

    删除没用的 mainscriptsauthorlicense,剩下package.json

    {
      "name": "myname",
      "version": "1.0.0",
      "description": ""
    }
    

    安装grunt到本地,从而package.json更新(核心步骤)

    npm install grunt --save-dev
    {
      "name": "myname",
      "version": "1.0.0",
      "description": "",
      "devDependencies": {
        "grunt": "^1.0.1"
      }
    }
    

     

    3. Grunt Plugins插件

    ① package.json添加内容:

    {
      "name": "myname",
      "version": "1.0.0",
      "description": "",
      "devDependencies": {
        "grunt": "^1.0.1",
        "grunt-contrib-concat": "^0.3.0",
        "grunt-contrib-csslint": "^1.0.0",
        "grunt-contrib-jshint": "^0.6.5",
        "grunt-contrib-uglify": "~0.2.1",
        "grunt-contrib-watch": "^1.0.0"
      }
    }
    

    插件批量安装(如果手动单个添加:npm install grunt-contrib-concat --save-dev)

    npm install

    接下来手动创建以下内容——

     

    ② 新建Gruntfile.js

    module.exports = function(grunt){
            grunt.initConfig({
                //3 压缩JS文件的
                uglify: {
                    build: {
                    src: 'des/concat1.js',
                    dest: 'des/libs.min.js'
                    }
                },
                //2 连接JS文件
                concat: {
                    options: {
                        separator: ';'
                    },
                    dist: {
                        src: ['src/a.js', 'src/b.js'],
                        dest: 'des/concat1.js'
                    }
                },
                //1 js:检查代码中糟糕的部分,大家都用
                jshint: {
                    build: [ 'Gruntfile.js','src/*.js'],
                    options: {
                        jshintrc:'.jshintrc'
                    }
                },
                //4 自动刷新
                watch:{
                    build: {
                        files: ['src/*.js', 'src/*.css'],
                        tasks: ['jshint', 'uglify'],
                        options: { spawn: false}
                    }
                }
            });
    
            grunt.loadNpmTasks('grunt-contrib-uglify');
            grunt.loadNpmTasks('grunt-contrib-jshint');
            grunt.loadNpmTasks('grunt-contrib-watch');
            grunt.loadNpmTasks('grunt-contrib-concat');
    
            //1检查语法 2连接 3压缩 4自动刷新
            grunt.registerTask('default', ['jshint','concat','uglify','watch']);
    };
    

    ③ 新建过滤文件.jshintrc、.csslintrc

    {
        "boss": false,
        "curly": true,
        "eqeqeq": true,
        "eqnull": true,
        "expr": true,
        "immed": true,
        "newcap": true,
        "noempty": true,
        "noarg": true,
        "undef": true,
        "regexp": true,
    
        "browser": true,
        "devel": true,
        "node": true
    }
    View Code
    {
        "adjoining-classes":false,
        "box-sizing": false,
        "box-model": false,
        "compatible-vendor-prefixes": false,
        "floats": false,
        "font-sizes": false,
        "gradients": false,
        "important": false,
        "known-properties": false,
        "outline-none" : false,
        "qualified-headings": false,
        "regex-selectors": false,
        "shorthand": false,
        "text-indent": false,
        "unique-headings": false,
        "universal-selector": false,
        "unqualified-attributes": false
    }
    View Code

    新建src文件夹、des文件夹

    ④ src文件夹中新建测试用的js文件 a.js b.js,随便写点东西测试

    var a=[];
    var b=123;
    var c;
    var sadf;
    //现在跑起来
    grunt

    生成连接文件、压缩文件,最终效果截图。(名字可以随便取)

    OK!

    参考资料:

    segment社区:      https://segmentfault.com/a/1190000000353114

    叶小钗大神:       http://www.cnblogs.com/yexiaochai/p/3603389.html

    插件汇总:     http://www.gruntjs.net/plugins

    grunt理论介绍:    http://www.tuicool.com/articles/FfMBfq

     http://www.cnblogs.com/wangfupeng1988/p/4561993.html

  • 相关阅读:
    hdu 4027 Can you answer these queries?
    hdu 4041 Eliminate Witches!
    hdu 4036 Rolling Hongshu
    pku 2828 Buy Tickets
    hdu 4016 Magic Bitwise And Operation
    pku2886 Who Gets the Most Candies?(线段树+反素数打表)
    hdu 4039 The Social Network
    hdu 4023 Game
    苹果官方指南:Cocoa框架(2)(非原创)
    cocos2d 中 CCNode and CCAction
  • 原文地址:https://www.cnblogs.com/tabCtrlShift/p/5580284.html
Copyright © 2011-2022 走看看