自动构建工具Grunt

简介: 摘要:   大部分项目在部署之前都需要做的就是js、css文件的压缩、合并,以及一些文件的错误检查,甚至是将LESS文件转换成css文件,coffeescript文件转化成js文件等等。但是项目开发是分迭代的,没开发完一次,上面的工作要重新做一遍。

摘要:

  大部分项目在部署之前都需要做的就是js、css文件的压缩、合并,以及一些文件的错误检查,甚至是将LESS文件转换成css文件,coffeescript文件转化成js文件等等。但是项目开发是分迭代的,没开发完一次,上面的工作要重新做一遍。那有什么工具能帮助我们来做这些重复的工作呢?Grunt就是其中一个非常好用的工具。下面就来学习一下Grunt。

安装:

  Grunt是基于node.js,所以你先安装node.js,安装完之后,只需要执行下面的命令就可以安装Grunt

npm install -g grunt-cli

参数g表示全局安装,grunt-cli表示安装的是grunt的命令行界面。

  安装完成之后,他会把Grunt配置到你的系统路径,允许其从任何目录下运行。安装完之后并不能执行操作,因为Grunt是基于模块机构,所以必须安装模块。模块是局部的,是根据项目需求来安装的。在项目的随便一个目录下(最好是根目录,也可以随便创建个目录)新建一个文件---package.json(也可以通过node init来创建),内容如下:

{
    "name": "",            // 项目名称
    "version": "",         // 项目版本
    "private": true,       // 项目是否私有
    "description": "",     //  项目描述
    "main": "",            // 项目主要文件
    "dependencies": {},    // 项目依赖的模块
    "devDependencies": {   // 项目开发阶段依赖的模块
        "grunt": "0.x.x",  // grunt模块为最新的0.x.x版
        "grunt-contrib-clean": "~0.5.0", // clean插件不低于0.5.0
        "grunt-contrib-copy": "~0.5.0",
        "grunt-contrib-less": "~0.11.0",
        "grunt-contrib-uglify": "~0.4.0",
        "grunt-contrib-watch": "~0.6.1",
        "grunt-contrib-concat": "*"
    },
    "keywords": [],   // 项目关键字
    "author": {       // 作者
        "name": "",
        "age": ""
    },
    "contributors": [],  // 贡献者 
    "license": ""        // 版权
}

 

 

然后在当前目录下,通过命令终端运行npm install,这时你会发现多出一个node_modules文件夹,里面就是我们安装的模块。

配置:

  Grunt和模块都已经安装完成了,下面需要做的就是创建一个配置文件,来告诉Grunt需要去哪里,然后做什么等等。在上面的目录下新建一个文件Gruntfile.js(注意大小写),内容如下:

module.exports = function(grunt) {
  
  'use strict';

  // 配置Grunt各种模块的参数
  grunt.initConfig({
    clean:  {
      oldMinFiles: [],
      afterUglify: []
    },
    jslint: {
      command: "",
      options: ""
    },
    concat: {

    },
    uglify: {

    },
    watch:  {

    },
    copy: {

    },
    less: {

    }
  });

  // 从node_modules目录加载模块文件
  grunt.loadNpmTasks('grunt-contrib-copy');
  grunt.loadNpmTasks('grunt-contrib-clean');
  grunt.loadNpmTasks('grunt-cmd-concat');
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-less');
  grunt.loadNpmTasks('grunt-contrib-watch');

  // 定义任务
  grunt.registerTask('default', ['jsLint', 'concat', 'uglify']);
  grunt.registerTask('check', ['jslint']);

};

 

 

只需要在当前目录执行命令

合并文件:

grunt concat

代码检查:

grunt check 

 

 后期将介绍grunt的每一个模块。

附录:

 

grunt.initConfig

配置各模块的参数,每项对应一个同名模块。

grunt.loadNpmTasks

加载所需的模块。

grunt.registerTask

定义具体的任务。第一个参数为任务名,第二个参数是一个数组,表示该任务需要依次使用的模块。default是默认任务,即直接输入grunt命令,后面不跟任何参数,这时所调用的模块为default对应的任务。

 

 

  

 

相关文章
|
25天前
|
JSON JavaScript 数据格式
使用pnpm搭建monorepo开发环境
使用pnpm搭建monorepo开发环境
33 0
|
1月前
|
jenkins Java 持续交付
配置 Jenkins 构建工具
配置 Jenkins 构建工具
35 2
配置 Jenkins 构建工具
|
8月前
|
XML 数据可视化 jenkins
Jenkins自动构建项目
Jenkins自动构建项目
|
10月前
|
前端开发 JavaScript
nrm轻松管理NPM注册表的工具与.npmrc定制化项目的依赖管理
NPM 是前端开发中一个不可或缺的工具,用于管理和安装各种依赖包。但是,有时候我们需要从不同的 NPM 注册表中安装包,例如,从 `npmjs.org`、`淘宝镜像`或`私有注册表`中安装。这时候,一个方便的管理工具就显得非常重要了,而 nrm 就是这样一个工具。
136 0
|
10月前
|
缓存 分布式计算 前端开发
从npm版本依赖到Monorepo大仓项目
前端的发展很快,自从node.js的出现,打开前端新的大门,npm让js有了自己的包管理能力,能够让前端项目工程化,从而能够处理更加复杂的前端项目。
184 0
|
11月前
|
IDE NoSQL Java
简单的 C/C++ 项目自动化构建--Xmake
简单的 C/C++ 项目自动化构建--Xmake
在vuecli3怎么提升构建打包速度?
在vuecli3怎么提升构建打包速度?
250 0
|
数据安全/隐私保护 开发者 Ruby
Fastlane 自动打包
Fastlane 自动打包
Fastlane 自动打包
|
缓存 资源调度 算法
npm的依赖管理工具
node学习笔记
92 0
npm的依赖管理工具
类似GitBook的文档构建工具
类似GitBook的文档构建工具
1467 0
类似GitBook的文档构建工具