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

3.4 KiB
Raw Blame History

title localeTitle
Grunt земля

хрюкать

Grunt - это бегущая задача JavaScript, которую вы можете использовать для автоматизации повторяющихся задач.

Зачем использовать Grunt?

В веб-разработке много повторяющихся задач. Например: компиляция, удаление и копирование файлов. Выполнение этих задач вручную требует больших усилий и времени.

С Грунтом вы облегчите свою работу. Вам нужно только настроить задачи через Gruntfile .

Начиная

  1. Установите npm .
  2. Установите интерфейс командной строки Grunt (CLI) в глобальном масштабе с npm install -g grunt-cli .
  3. Список Grunt и плагины Grunt как devDependencies в файле package.json .
  4. Установите плагины Grunt и Grunt с npm i .
  5. Настройте задачи в файле Gruntfile.js .
  6. Запустите Grunt с grunt .

пример

Ниже приведен пример package.json и Gruntfile.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"]); 
 }; 

Дополнительная информация:

Грунтовая документация: Начало работы