grunt前端自动化

梦想的初衷 提交于 2019-12-05 02:58:47

一.简介

二.grunt安装使用

1.安装nodejs

grunt是一个基于nodejs命令的工具,因此需要安装nodejs环境,nodejs下载地址:

https://nodejs.org/en/   根据自己的主机的位数或者是根据需要下载相应的平台的安装包,

本文档主要是针对windows环境,nodejs安装和安装其他软件没有什么区别不做详细介绍

关键步骤检查nodejs是否安装成功:在windows命令行窗口中输入npm -version

如果输出nodejs的相应的版本号说明安装成功

 2.安装grunt命令行工具grunt-cli

打开windows命令行工具输入:

npm install grunt -g grunt-cli

3.安装grunt

打开windows命令行工具输入:

npm install grunt --save-dev

安装完后检查grunt是否安装成功,在命令行窗口输入:

grunt -version

4.grunt构建web前端

在磁盘上新建一个项目,例如:jsproject

4.1在jsproject下新建一个目录src用于存放js源码文件

4.2创建一个文件package.json

文件package.json和src平行存放

package.json输入以下内容

{

  "name": "yizhi",//构建签署名

  "version": "0.1.0",//构建的版本号

  "devDependencies": {

    "grunt": "~0.4.5",//依赖grunt 版本

    "grunt-contrib-concat": "~0.1.1",//依赖的文件合并插件版本

    "grunt-contrib-jshint": "^0.11.3",//依赖的js语法检测插件版本

    "grunt-contrib-uglify": "~0.8.0"//依赖的js文件压缩插件版本

  }

}

完成package.json配置后输入后:

npm install

(执行该命令时去要cd到项目的根目录) 然后观察项目的根目录下多了个一个node_modules目录文件

4.3创建Gruntfile.js

Gruntfile.js文件与src平行放在项目文件的根目录

Gruntfile.js中配置以下内容

module.exports = function (grunt) {
    //config
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        //merger javascipt source files into a specific file
        concat: {
            domop: {
                src: ['src/jquery-calendar-v3.js'],
                dest: 'dest/common.js'
            }
        },
        //grunt uglify plugin is used to compress javascript file
        uglify: {
            options: {
                banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
            },
            build: {
                src: 'dest/common.js',//压缩依赖的原文件
                dest: 'dest/common.min.js'//压缩后的文件
            }
        },
        //grunt jshint plugin is used to check javascript Syntax
        jshint: {
            build: ['Gruntfile.js', 'src/jquery-calendar-v3.js'],//检查js文件中代码的语法错误
            options: {
                jshintrc: '.jshintrc'//从.jshintrc中读取配置
            }
        },
        //grunt watch plugin
        watch: {
            build: ['src/*js', 'src/*.css'],
            task: ['jshint', 'uglify'],
            options: {spawn: false}
        }
    });

    //load plugins
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-jshint');
    //grunt.loadNpmTasks('grunt-contrib-watch');
    //register tasks
    grunt.registerTask('default', ['concat', 'uglify']);//合并和压缩js,需要考虑执行顺序
   //在合并压缩之前先使用jshint检测js代码的语法错误,语法错误是根据.jshintrc文件中的配置来提示
};

.jshintrc文件内容如下:

{

  "boss":false,

  "curly":true,

  "eqeqeq":true,

  "eqnull":true,

  "expr":true,

  "immed":true,

  "newcap":true,

  "noempty":true,

  "undef":true,

  "browser":true,

  "devel":true,

  "node":true

}

最后在windows中输入:grunt命令(执行该命令时去要cd到项目的根目录),如果没语法错误,grunt就会自动合并源代码并压缩

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!