zoukankan      html  css  js  c++  java
  • grunt 配置运行

    Grunt是一个前端自动化工具,基于Node.js,可以实现自动前端代码维护,包括htmlhint,sass,jshint等工具方法的自动化实现。

    安装:

    首先安装Node。

    http://nodejs.org/

    其次安装npm。

    下载npm源码

    https://github.com/isaacs/npm/zipball/v1.0.104

      执行:

    D:>cd npmjs
    D: pmjs>node cli.js install -gf

    再次,安装grunt-cli。

      npm install -g grunt-cli

    最后,配置grunt。

      1.创建package.json

    {
    "name": "grunt-test",
    "version": "0.1.0",
    "author": "yinqiao",
    "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-jshint": "~0.6.3",
    "grunt-contrib-watch": "~0.5.3",
    "grunt-contrib-compass": "~0.6.0",
    "grunt-browser-sync": "~0.3.0",
    "grunt-contrib-sass": "~0.5.1",
    "grunt-contrib-uglify": "~0.2.7",
    "uglify-js": "~2.4.7",
    "htmlhint": "~0.9.3"
    }
    }

      2.创建gruntfile.js

    module.exports = function(grunt){

    grunt.initConfig({

    //JSHint (http://www.jshint.com/docs)
    jshint: {
    all: {
    src: 'assets/js/*.js',
    options: {
    bitwise: true,
    camelcase: true,
    curly: true,
    eqeqeq: true,
    forin: true,
    immed: true,
    indent: 4,
    latedef: true,
    newcap: true,
    noarg: true,
    noempty: true,
    nonew: true,
    quotmark: 'single',
    regexp: true,
    undef: true,
    unused: true,
    trailing: true,
    maxlen: 120
    }
    }
    },

    //Uglify
    uglify: {
    all: {
    files: {
    'public/javascripts/all.min.js':'assets/js/*.js'
    }
    }
    },

    //Sass
    sass: {
    options: {
    style: 'compressed',
    precision: 5
    },
    all: {
    files: {
    'public/stylesheets/style.css':'assets/sass/style.scss'
    }
    }
    },

    //Htmlhint
    htmlhint: {
    build: {
    options: {
    'tag-pair':true,
    'tagname-lowercase':true,
    'attr-lowercase':true,
    'attr-value-double-quotes':true,
    'doctype-first':true,
    'spec-char-escape':true,
    'id-unique':true,
    'head-script-disabled':true,
    'style-disabled':true
    },
    src:['index.html']
    }
    },

    //watch
    watch: {
    javascript: {
    files: 'assets/js/*.js',
    tasks: ['jshint','uglify']
    },
    sass: {
    files: 'assets/sass/*.scss',
    tasks: 'sass'
    },
    html: {
    files:['index.html'],
    tasks:['htmlhint']
    }
    }

    });

    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-sass');
    grunt.loadNpmTasks('grunt-htmlhint');
    };

      3.创建index.js。创建资源目录assets。该目录下可有js、sass等文件夹,分别把不同的资源文件放置在相应的目录下。

      4.运行grunt。

        grunt watch

        grunt jshint

        grunt htmlhint

        grunt sass

      

      5.在运行的过程中,如遇到Warning: Task "uglify" not found. Use --fouce to continue.

        即是没有安装uglify安装,通过命令进行安装:npm install uglify-js --save-dev。

        使用--save-dev参数,安装该模块完成后会自动将该模块添加到package.json模块依赖关系中。

        遇到其他模块没有完成安装的解决方法类似。

    我的工程目录结构如下图所示:

     modules

  • 相关阅读:
    Android创建上下文(appContext)
    java泛型——同一类型
    (转)cglib介绍与原理——CallBackFilter、延迟加载
    cglib常用api
    ES6——Proxy实现Web服务,进行方法拦截,通过方法名称生成网址
    day4幸运抽奖系统更新
    day7_abstractClass_interface
    day6_inheritance_polymorphis
    day5_package
    day4_class_method_array
  • 原文地址:https://www.cnblogs.com/lonicera/p/grunt.html
Copyright © 2011-2022 走看看