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

119 lines
3.4 KiB
Markdown
Raw Normal View History

2018-10-12 20:00:59 +00:00
---
title: Grunt
localeTitle: земля
---
## хрюкать
`Grunt` - это бегущая задача JavaScript, которую вы можете использовать для автоматизации повторяющихся задач.
### Зачем использовать Grunt?
В веб-разработке много повторяющихся задач. Например: компиляция, удаление и копирование файлов. Выполнение этих задач вручную требует больших усилий и времени.
С Грунтом вы облегчите свою работу. Вам нужно только настроить задачи через [Gruntfile](https://gruntjs.com/sample-gruntfile) .
### Начиная
1. Установите [npm](https://www.npmjs.org/) .
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
```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
```javascript
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"]);
};
```
#### Дополнительная информация:
Грунтовая документация: [Начало работы](https://gruntjs.com/getting-started)