Skip to content

Commit c55fb8a

Browse files
author
dmgame
committed
basic gulp template v1.0.0
0 parents  commit c55fb8a

File tree

7 files changed

+131
-0
lines changed

7 files changed

+131
-0
lines changed

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
*.txt
2+
*.md
3+
node_modules/
4+
.idea/

app/img/sprite.png

12.3 KB
Loading

app/index.html

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Store</title>
6+
<meta name="viewport" content="width=device-width, initial-scale=1">
7+
8+
<!-- STYLE -->
9+
<link rel="stylesheet" href="css/sprite.css">
10+
<link rel="stylesheet" href="css/style.css">
11+
</head>
12+
<body>
13+
14+
15+
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
16+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
17+
</body>
18+
</html>

gulpfile.js

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
var gulp = require('gulp'), // Подключаем Gulp
2+
browserSync = require('browser-sync'), // Подключаем Browser Sync
3+
concat = require('gulp-concat'), // Подключаем gulp-concat (для конкатенации файлов)
4+
uglify = require('gulp-uglifyjs'), // Подключаем gulp-uglifyjs (для сжатия JS)
5+
cssnano = require('gulp-cssnano'), // Подключаем пакет для минификации CSS
6+
rename = require('gulp-rename'), // Подключаем библиотеку для переименования файлов
7+
imagemin = require('gulp-imagemin'), // Подключаем библиотеку для работы с изображениями
8+
pngquant = require('imagemin-pngquant'), // Подключаем библиотеку для работы с png
9+
cache = require('gulp-cache'), // Подключаем библиотеку кеширования
10+
autoprefixer = require('gulp-autoprefixer'),// Подключаем библиотеку для автоматического добавления префиксов
11+
spritesmith = require('gulp.spritesmith'), // Подключение библиотеки для создания спрайтов
12+
merge = require('merge-stream');
13+
14+
gulp.task('css', function(){ // Создаем таск Sass
15+
return gulp.src('src/css/**/*.css') // Берем источник
16+
.pipe(autoprefixer(['last 15 versions', '> 1%', 'ie 8', 'ie 7'], { cascade: true })) // Создаем префиксы
17+
.pipe(gulp.dest('app/css')) // Выгружаем результата в папку app/css
18+
.pipe(browserSync.reload({stream: true})) // Обновляем CSS на странице при изменении
19+
});
20+
21+
gulp.task('browser-sync', function() { // Создаем таск browser-sync
22+
browserSync({ // Выполняем browserSync
23+
server: { // Определяем параметры сервера
24+
baseDir: 'app' // Директория для сервера - app
25+
},
26+
notify: false // Отключаем уведомления
27+
});
28+
});
29+
30+
gulp.task('sprite', function () { // Создаем таск sprite
31+
var spriteData = gulp.src('src/sprite/*.png').pipe(spritesmith({ // Настройка спрайта
32+
imgName: 'sprite.png',
33+
cssName: 'sprite.css'
34+
}));
35+
// return spriteData.pipe(gulp.dest('app/img/')); // выгружаем спрайты в папку img
36+
var imgStream = spriteData.img
37+
.pipe(gulp.dest('app/img/'));
38+
39+
var cssStream = spriteData.css
40+
.pipe(gulp.dest('src/css/'));
41+
42+
return merge(imgStream, cssStream);
43+
});
44+
45+
46+
gulp.task('scripts', function() {
47+
return gulp.src('src/js/**/*.js')
48+
.pipe(concat('plugins.min.js')) // Собираем их в кучу в новом файле plugins.min.js
49+
.pipe(uglify()) // Сжимаем JS файл
50+
.pipe(gulp.dest('app/js')); // Выгружаем в папку app/js
51+
});
52+
53+
gulp.task('css-libs', ['css'], function() {
54+
return gulp.src('app/css/libs.css') // Выбираем файл для минификации
55+
.pipe(cssnano()) // Сжимаем
56+
.pipe(rename({suffix: '.min'})) // Добавляем суффикс .min
57+
.pipe(gulp.dest('app/css')); // Выгружаем в папку app/css
58+
});
59+
60+
gulp.task('watch', ['browser-sync', 'css', 'scripts', 'sprite'], function() {
61+
gulp.watch('src/css/**/*.css', ['css']); // Наблюдение за css файлами в папке css
62+
gulp.watch('src/sprite/*.png', ['sprite']); // Наблюдение за папкой с картинками для спрайтов папке sprite
63+
gulp.watch('app/*.html', browserSync.reload); // Наблюдение за HTML файлами в корне проекта
64+
gulp.watch('app/js/**/*.js', browserSync.reload); // Наблюдение за JS файлами в папке js
65+
});
66+
67+
gulp.task('img', function() {
68+
return gulp.src('src/img/**/*') // Берем все изображения из app
69+
.pipe(cache(imagemin({ // Сжимаем их с наилучшими настройками с учетом кеширования
70+
interlaced: true,
71+
progressive: true,
72+
svgoPlugins: [{removeViewBox: false}],
73+
use: [pngquant()]
74+
})))
75+
.pipe(gulp.dest('app/img')); // Выгружаем на продакшен
76+
});
77+
78+
79+
gulp.task('clear', function () {
80+
return cache.clearAll();
81+
});
82+
83+
gulp.task('default', ['watch']);

package.json

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"name": "store",
3+
"version": "1.0.0",
4+
"description": "",
5+
"main": "index.js",
6+
"scripts": {
7+
"test": "echo \"Error: no test specified\" && exit 1"
8+
},
9+
"author": "",
10+
"license": "ISC",
11+
"devDependencies": {
12+
"browser-sync": "^2.18.13",
13+
"gulp": "^3.9.1",
14+
"gulp-autoprefixer": "^4.0.0",
15+
"gulp-cache": "^0.4.6",
16+
"gulp-concat": "^2.6.1",
17+
"gulp-cssnano": "^2.1.2",
18+
"gulp-font2css": "^0.1.2",
19+
"gulp-imagemin": "^3.3.0",
20+
"gulp-rename": "^1.2.2",
21+
"gulp-uglifyjs": "^0.6.2",
22+
"gulp.spritesmith": "^6.5.1",
23+
"imagemin-pngquant": "^5.0.1",
24+
"merge-stream": "^1.0.1"
25+
}
26+
}

src/css/style.css

Whitespace-only changes.

src/js/init.js

Whitespace-only changes.

0 commit comments

Comments
 (0)