Skip to content

Commit 7e24292

Browse files
committed
feat(project): добавил сборку gulp
1 parent 767303c commit 7e24292

33 files changed

+24578
-0
lines changed

.browserslistrc

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
last 2 versions
2+
not dead
3+
not IE 11

.editorconfig

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# editorconfig.org
2+
3+
root = true
4+
5+
[*]
6+
indent_size = 2
7+
indent_style = space
8+
end_of_line = lf
9+
charset = utf-8
10+
trim_trailing_whitespace = true
11+
insert_final_newline = true

.gitignore

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Файлы и папки операционной системы
2+
.DS_Store
3+
Thumbs.db
4+
5+
# Файлы редактора
6+
.idea
7+
.vscode
8+
9+
# Вспомогательные файлы
10+
node_modules
11+
12+
# Папка с собранными файлами проекта
13+
dist
14+
15+

gulp/paths.js

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
const paths = {
2+
views: {
3+
src: './src/views/pages/*.pug',
4+
dist: './dist/',
5+
watch: [
6+
'./src/views/**/*.pug',
7+
'./src/components/**/*.pug',
8+
],
9+
},
10+
styles: {
11+
src: './src/styles/main.{scss,sass}',
12+
dist: './dist/assets/styles/',
13+
watch: [
14+
'./src/components/**/*.{scss,sass}',
15+
'./src/styles/**/*.{scss,sass}'
16+
]
17+
},
18+
scripts: {
19+
src: './src/js/index.js',
20+
dist: './dist/assets/js/',
21+
watch: [
22+
'./src/components/**/*.js'
23+
]
24+
},
25+
images: {
26+
src: [
27+
'./src/assets/images/**/*.{jpg,jpeg,png,gif,svg}',
28+
],
29+
dist: './dist/assets/images/',
30+
watch: './src/assets/images/**/*.{jpg,jpeg,png,gif,svg}'
31+
},
32+
fonts: {
33+
src: './src/assets/fonts/**/*.{ttf,woff,woff2}',
34+
dist: './dist/assets/fonts/',
35+
watch: './src/assets/fonts/**/*.{ttf,woff,woff2}'
36+
},
37+
sprites: {
38+
src: './src/sprite/**/*.svg',
39+
dist: './dist/assets/images/',
40+
watch: './src/sprite/**/*.svg'
41+
}
42+
};
43+
44+
module.exports = paths;

gulp/tasks/clean.js

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const del = require('del');
2+
3+
const clean = () => {
4+
return del('dist')
5+
}
6+
7+
module.exports = clean;

gulp/tasks/fonts.js

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
const { src, dest } = require('gulp');
2+
const browserSync = require('browser-sync');
3+
4+
const paths = require('../paths');
5+
6+
const fonts = () => {
7+
return (
8+
src(paths.fonts.src)
9+
.pipe(dest(paths.fonts.dist))
10+
.pipe(browserSync.stream())
11+
)
12+
}
13+
14+
module.exports = fonts;

gulp/tasks/images.js

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
const { src, dest } = require('gulp');
2+
const gulpIf = require('gulp-if');
3+
const imagemin = require('gulp-imagemin');
4+
const browserSync = require('browser-sync');
5+
6+
const paths = require('../paths');
7+
8+
const isProduction = process.env.NODE_ENV === 'production';
9+
10+
const images = () => {
11+
return (
12+
src(paths.images.src)
13+
.pipe(gulpIf(isProduction, imagemin()))
14+
.pipe(dest(paths.images.dist))
15+
.pipe(browserSync.stream())
16+
)
17+
}
18+
19+
module.exports = images;

gulp/tasks/server.js

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
const browserSync = require('browser-sync');
2+
const { watch } = require('gulp');
3+
4+
const styles = require('./styles');
5+
const fonts = require('./fonts');
6+
const views = require('./views');
7+
const svgSprite = require('./svgSprite');
8+
const images = require('./images');
9+
10+
const paths = require('../paths');
11+
12+
const server = () => {
13+
browserSync.init({
14+
server: 'dist/',
15+
})
16+
17+
watch(paths.styles.watch, styles);
18+
watch(paths.fonts.watch, fonts);
19+
watch(paths.views.watch, views);
20+
watch(paths.sprites.watch, svgSprite);
21+
watch(paths.images.watch, images);
22+
}
23+
24+
module.exports = server;

gulp/tasks/styles.js

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
const { src, dest } = require('gulp');
2+
const postcss = require('gulp-postcss')
3+
const autoprefixer = require('autoprefixer');
4+
const browserSync = require('browser-sync');
5+
const sourcemaps = require('gulp-sourcemaps');
6+
const plumber = require('gulp-plumber');
7+
const gulpIf = require('gulp-if');
8+
const sass = require('gulp-sass')(require('sass'));
9+
10+
const paths = require('../paths');
11+
12+
const isProduction = process.env.NODE_ENV === 'production';
13+
14+
const styles = () => {
15+
return (
16+
src(paths.styles.src)
17+
.pipe(plumber())
18+
.pipe(gulpIf(!isProduction, sourcemaps.init()))
19+
.pipe(sass())
20+
.pipe(postcss(
21+
[
22+
autoprefixer()
23+
]
24+
))
25+
.pipe(gulpIf(!isProduction, sourcemaps.write('.')))
26+
.pipe(dest(paths.styles.dist))
27+
.pipe(browserSync.stream())
28+
)
29+
}
30+
31+
module.exports = styles;

gulp/tasks/svgSprite.js

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
const { src, dest } = require('gulp');
2+
const gulpSvgSprite = require('gulp-svg-sprite');
3+
const browserSync = require('browser-sync');
4+
const plumber = require('gulp-plumber');
5+
6+
const paths = require('../paths');
7+
8+
const svgSprite = () => {
9+
return src(paths.sprites.src)
10+
.pipe(plumber())
11+
.pipe(gulpSvgSprite({
12+
mode: 'symbols',
13+
preview: false
14+
}))
15+
.pipe(dest(paths.sprites.dist))
16+
.pipe(browserSync.stream());
17+
}
18+
19+
module.exports = svgSprite;

gulp/tasks/views.js

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
const { src, dest } = require('gulp');
2+
const plumber = require('gulp-plumber');
3+
const pug = require('gulp-pug');
4+
const browserSync = require('browser-sync');
5+
6+
const paths = require('../paths');
7+
8+
const views = () => {
9+
return src(paths.views.src)
10+
.pipe(plumber())
11+
.pipe(pug({
12+
pretty: true
13+
}))
14+
.pipe(dest(paths.views.dist))
15+
.pipe(browserSync.stream())
16+
}
17+
18+
module.exports = views;

gulpfile.js

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
const { parallel, series } = require('gulp');
2+
3+
const views = require('./gulp/tasks/views');
4+
const clean = require('./gulp/tasks/clean');
5+
const server = require('./gulp/tasks/server');
6+
const styles = require('./gulp/tasks/styles');
7+
const images = require('./gulp/tasks/images');
8+
const fonts = require('./gulp/tasks/fonts');
9+
const svgSprite = require('./gulp/tasks/svgSprite');
10+
11+
const build = series(clean, parallel(views, styles, fonts, images, svgSprite));
12+
const dev = series(build, server);
13+
14+
module.exports.start = dev
15+
module.exports.build = build

0 commit comments

Comments
 (0)