grunt是前端自动化构建工具,可以混淆js代码,当然也能压缩css样式,压缩图片,以及前端打包。而grunt必须依赖于node.js,对于node.js,早有耳闻,但一直没去认知了解。

一、我们要安装node.js.

去官网nodejs下载地址; 下载适合自身电脑系统的版本。这里我使用的是node-4.2.4.msi的版本。现在的版本中已经集合了npm;npm是nodejs的包管理工具,我这里粗浅的理解为java中maven管理架包一样的一种构建工具。

这里安装好之后,nodejs自带一个命令行管理工具Node.js command prompt;可以在此工具中或者cmd命令行一次输入node -v ;npm -v  查看安装的版本

你不知道事——Grunt快速入门_java

二、grunt组件安装

接下来我们可以使用npm 命令来安装grunt了,grunt可以在单个项目中安装,也可以安装在全局系统中,推荐在项目中安装,这样方便grunt即时更新版。

在安装grunt前,必须使用:

npm install -g grunt-cli

-g代表全局;

注意,安装grunt-cli并不等于安装了 Grunt!Grunt CLI的任务很简单:调用与Gruntfile在同一目录中 Grunt。

接下来我们需要使用两个关键的文件package.json和Gruntfile.js.

在我们的想要用grunt实现系列功能的项目根目录下,新建package.json和Gruntfile.js

三、package.json文件配置

在package.json文件中:

{
 "name""demo",
 "version""0.1.0",
 "description""系统前端",
 "author""testdu",
 "keywords": ["nodeJs","grunt"],
 "license""MIT",
 "repository": {
   "type""git",
   "url""https://gitee.com/duweikang/demo.git"
 },
 "devDependencies": {
   "grunt""^1.0.2",
   "grunt-contrib-concat ""~1.0.1",
   "grunt-contrib-cssmin""^2.2.1",
   "grunt-contrib-uglify""^3.3.0"
 },
 "dependencies": {
   "grunt-contrib-compress""^1.4.3",
   "grunt-contrib-concat""^1.0.1"
 }
}

关于项目的名称,版本,描述等,重要的是devDependencies中列出了所需要依赖的grunt插件列表。这里使用了jshint,watch,和cssmin3个插件。

四、Gruntfile.js文件配置

Gruntfile.js是刚才package.json的所列grunt插件的配置:

module.exports = function(grunt{
   grunt.initConfig({
       pkg: grunt.file.readJSON('package.json'),
       //合并
       concat: {
           tasknameconcat: {
               files:{
                'js/main.js':['js/jquery-3.3.1.min.js','js/common.js']
               }     
           }
       },
       //加密
       uglify: {
           tasknameuglify: {
               files:{
                'js/main.min.js':['js/main.js']
               }     
           }
       },
       //ccs合并压缩
       cssmin:{
         tasknamecssmin:{
           files:{
             'css/main.min.css':['css/common.css','css/normal.css','css/font-awesome.min.css']
           }
         }
       },
       //compress打包
       compress: {
     main: {
       options: {
         archive'dist/demo.zip'
       },
       files: [{
         src: [
           'css/main.min.css',
           'fonts/**',
           'img/**',
           'js/main.min.js',
           'index.html'
         ],
         dest'demo/'
       }]
     }
   }
   });
   grunt.loadNpmTasks('grunt-contrib-concat');
 grunt.loadNpmTasks('grunt-contrib-uglify');
 grunt.loadNpmTasks('grunt-contrib-cssmin');
 grunt.loadNpmTasks('grunt-contrib-compress');
   //注册任务
   grunt.registerTask('default', ['concat''uglify''cssmin']);
};

此文件再grunt命令执行的时候,会加载所列grunt插件。如代码所示,我们压缩js文件夹下newtest.js到映射文件dest文件夹下,并更名为dest-js.js文件。

五、执行grunt脚本。

当配置好这两个文件就可以在命令行执行grunt来压缩js了。如下命令

npm install
grunt

此时再回到我们文件目录中,如约出现了dest/dest-js.js文件并且文件已经压缩好了。


执行脚本

css/js压缩:

你不知道事——Grunt快速入门_java_02

项目打包:

你不知道事——Grunt快速入门_java_03


执行结果

压缩后的css:

你不知道事——Grunt快速入门_java_04

压缩js:(js加密混淆比较彻底)

你不知道事——Grunt快速入门_java_05

项目打包:

你不知道事——Grunt快速入门_java_06

六、总结:Node Grunt自动化

今天跟大家分享的grunt,比较粗浅。暂时小编工作中就是能用他来进行项目加密,项目压缩和自动化打包等功能。Gruntfile.js,package.json的脚本配置更多的大家可以了解一下,后边再慢慢学习使用grunt来构建前端项目,如有疑问,欢迎留言,共同进步。