freeCodeCamp/guide/chinese/developer-tools/grunt/index.md

2.6 KiB
Raw Blame History

title localeTitle
Grunt 地面

咕噜

Grunt是一个JavaScript任务运行器可用于自动执行重复性任务。

为什么要使用Grunt

Web开发中有许多重复的任务。例如编译缩小和复制文件。手动完成这些任务需要花费很多精力和时间。

Grunt可以让您的工作更轻松。您只需要通过Gruntfile配置任务。

入门

  1. 安装npm
  2. 使用npm install -g grunt-cli全局安装Grunt的命令行界面CLI
  3. 将Grunt和Grunt插件列为package.json文件中的devDependencies。
  4. npm i安装Grunt和Grunt插件。
  5. Gruntfile.js文件中配置任务。
  6. grunt跑Grunt。

下面是package.jsonGruntfile.js的示例,用于执行以下任务:

  1. 缩小HTML文件。
  2. 添加供应商前缀并缩小CSS文件。
  3. 连接和缩小JavaScript文件。
  4. 缩小图像。

的package.json

{ 
  "name": "project-name", 
  "version": "0.1.0", 
  "devDependencies": { 
    "grunt": "latest", 
    "grunt-contrib-htmlmin": "latest", 
    "grunt-postcss": "latest", 
    "autoprefixer": "latest", 
    "cssnano": "latest", 
    "grunt-contrib-uglify": "latest", 
    "grunt-contrib-imagemin": "latest", 
  } 
 } 

Gruntfile.js

module.exports = function(grunt) { 
 
  grunt.initConfig({ 
    htmlmin: { 
      options: { 
        removeComments: true, 
        collapseWhitespace: true 
      }, 
      html: { 
        files: [{ 
          expand: true, 
          cwd: "src/", 
          src: "**/*.html", 
          dest: "dest/" 
        }] 
      } 
    }, 
 
    postcss: { 
      options: { 
        processors: [ 
          require("autoprefixer")(), 
          require("cssnano")() 
        ] 
      }, 
      css: { 
        src: "dest/css/*.css" 
      } 
    }, 
 
     uglify: { 
      js: { 
        files: { 
          "dest/js/main.js": "src/js/*.js" 
        } 
      }, 
    }, 
 
    imagemin: { 
      img: { 
        options: { 
          optimizationLevel: 5, 
          quality: 75 
        }, 
        files: [{ 
          expand: true, 
          cwd: "src/img/", 
          src: "**", 
          dest: "dest/img/" 
        }] 
      } 
    }, 
  }); 
 
  grunt.loadNpmTasks("grunt-contrib-htmlmin"); 
  grunt.loadNpmTasks("grunt-postcss"); 
  grunt.loadNpmTasks("grunt-contrib-uglify"); 
  grunt.loadNpmTasks("grunt-contrib-imagemin"); 
 
  grunt.registerTask("default", ["htmlmin", "postcss", "uglify, imagemin"]); 
 }; 

更多信息:

Grunt文档 入门