Commit 78426777 authored by Nikolay Gromov's avatar Nikolay Gromov

Вынес настройки проекта в отдельный файл

parent eeb07dc2
......@@ -22,10 +22,10 @@ const size = require('gulp-size');
const del = require('del');
const newer = require('gulp-newer');
// Получим настройки проекта из package.json
let pjson = require('./package.json');
let dirs = pjson.configProject.dirs;
let lists = getFilesList(pjson.configProject);
// Получим настройки проекта из projectConfig.json
let projectConfig = require('./projectConfig.json');
let dirs = projectConfig.dirs;
let lists = getFilesList(projectConfig);
// console.log(lists);
// Запишем стилевой файл диспетчер подключений
......@@ -93,12 +93,12 @@ gulp.task('style', function () {
// Компиляция отдельных файлов
gulp.task('style:single', function () {
if(pjson.configProject.singleCompiled.length) {
if(projectConfig.singleCompiled.length) {
const sass = require('gulp-sass');
const sourcemaps = require('gulp-sourcemaps');
const wait = require('gulp-wait');
console.log('---------- Компиляция добавочных стилей');
return gulp.src(pjson.configProject.singleCompiled)
return gulp.src(projectConfig.singleCompiled)
.pipe(plumber({
errorHandler: function(err) {
notify.onError({
......@@ -127,8 +127,8 @@ gulp.task('style:single', function () {
// Копирование добавочных CSS, которые хочется иметь отдельными файлами
gulp.task('copy:css', function(callback) {
if(pjson.configProject.copiedCss.length) {
return gulp.src(pjson.configProject.copiedCss)
if(projectConfig.copiedCss.length) {
return gulp.src(projectConfig.copiedCss)
.pipe(postcss(postCssPlugins))
.pipe(cleanss())
.pipe(size({
......@@ -159,8 +159,8 @@ gulp.task('copy:img', function () {
// Копирование JS
gulp.task('copy:js', function (callback) {
if(pjson.configProject.copiedJs.length) {
return gulp.src(pjson.configProject.copiedJs)
if(projectConfig.copiedJs.length) {
return gulp.src(projectConfig.copiedJs)
.pipe(size({
title: 'Размер',
showFiles: true,
......@@ -189,7 +189,7 @@ gulp.task('copy:fonts', function () {
// Сборка SVG-спрайта для блока sprite-svg
let spriteSvgPath = dirs.srcPath + dirs.blocksDirName + '/sprite-svg/svg/';
gulp.task('sprite:svg', function (callback) {
if((pjson.configProject.blocks['sprite-svg']) !== undefined) {
if((projectConfig.blocks['sprite-svg']) !== undefined) {
const svgstore = require('gulp-svgstore');
const svgmin = require('gulp-svgmin');
const cheerio = require('gulp-cheerio');
......@@ -231,7 +231,7 @@ gulp.task('sprite:svg', function (callback) {
// Сборка SVG-спрайта для блока sprite-png
let spritePngPath = dirs.srcPath + dirs.blocksDirName + '/sprite-png/png/';
gulp.task('sprite:png', function (callback) {
if((pjson.configProject.blocks['sprite-png']) !== undefined) {
if((projectConfig.blocks['sprite-png']) !== undefined) {
const spritesmith = require('gulp.spritesmith');
const buffer = require('vinyl-buffer');
const merge = require('merge-stream');
......@@ -379,22 +379,22 @@ gulp.task('serve', ['build'], function() {
gulp.watch([
dirs.srcPath + 'scss/style.scss',
dirs.srcPath + dirs.blocksDirName + '/**/*.scss',
pjson.configProject.addCssBefore,
pjson.configProject.addCssAfter,
projectConfig.addCssBefore,
projectConfig.addCssAfter,
], ['style']);
// Слежение за отдельными стилями
gulp.watch(pjson.configProject.singleCompiled, ['style:single',]);
gulp.watch(projectConfig.singleCompiled, ['style:single',]);
// Слежение за добавочными стилями
if(pjson.configProject.copiedCss.length) {
gulp.watch(pjson.configProject.copiedCss, ['copy:css']);
if(projectConfig.copiedCss.length) {
gulp.watch(projectConfig.copiedCss, ['copy:css']);
}
// Слежение за изображениями
if(lists.img.length) {
gulp.watch(lists.img, ['watch:img']);
}
// Слежение за добавочными JS
if(pjson.configProject.copiedJs.length) {
gulp.watch(pjson.configProject.copiedJs, ['watch:copied:js']);
if(projectConfig.copiedJs.length) {
gulp.watch(projectConfig.copiedJs, ['watch:copied:js']);
}
// Слежение за шрифтами
gulp.watch('/fonts/*.{ttf,woff,woff2,eot,svg}', {cwd: dirs.srcPath}, ['watch:fonts']);
......@@ -409,11 +409,11 @@ gulp.task('serve', ['build'], function() {
gulp.watch(lists.js, ['watch:js']);
}
// Слежение за SVG (спрайты)
if((pjson.configProject.blocks['sprite-svg']) !== undefined) {
if((projectConfig.blocks['sprite-svg']) !== undefined) {
gulp.watch('*.svg', {cwd: spriteSvgPath}, ['watch:sprite:svg']); // следит за новыми и удаляемыми файлами
}
// Слежение за PNG (спрайты)
if((pjson.configProject.blocks['sprite-png']) !== undefined) {
if((projectConfig.blocks['sprite-png']) !== undefined) {
gulp.watch('*.png', {cwd: spritePngPath}, ['watch:sprite:png']); // следит за новыми и удаляемыми файлами
}
});
......
......@@ -8,81 +8,6 @@
"type": "git",
"url": "https://github.com/nicothin/NTH-start-project.git"
},
"configProject": {
"blocks": {
"page": [],
"is-mobile": [],
"typo": [],
"sprite-svg": [],
"sprite-png": [
"__demo"
],
"page-header": [],
"page-footer": [],
"main-nav": [],
"logo": [],
"code": [],
"thumb": [],
"alert": [],
"btn": [],
"to-top": [],
"field-text": [
"--error"
],
"field-checkbox": [
"__input-wrap--error"
],
"field-radio": [
"__input-wrap--error"
],
"field-toggler": [],
"field-file": [
"--error"
],
"field-range": [],
"field-select": [
"--error"
],
"field-actions": [],
"form": [],
"dropdown": [],
"menu": [],
"label": [],
"loader": [],
"table": [],
"table-responsive": [],
"table-mobile-scroll": []
},
"addCssBefore": [
"./src/scss/variables.scss",
"./src/scss/mixins.scss"
],
"addCssAfter": [
"./src/scss/print.scss"
],
"singleCompiled": [
"./src/scss/blocks-library.scss"
],
"addJsBefore": [
"./node_modules/jquery/dist/jquery.min.js",
"./node_modules/jquery-migrate/dist/jquery-migrate.min.js",
"./node_modules/svg4everybody/dist/svg4everybody.js",
"./node_modules/ismobilejs/isMobile.min.js"
],
"addJsAfter": [
"./src/js/global-script.js"
],
"addImages": [
"./src/img/*.{jpg,jpeg,gif,png,svg,ico}"
],
"copiedCss": [],
"copiedJs": [],
"dirs": {
"srcPath": "./src/",
"buildPath": "./build/",
"blocksDirName": "blocks"
}
},
"scripts": {
"test:style": "stylelint \"src/**/*.scss\" --syntax=scss",
"test:orpho": "yaspeller -e \".md,.html\" ./src/",
......
{
"blocks": {
"page": [],
"is-mobile": [],
"typo": [],
"sprite-svg": [],
"sprite-png": [
"__demo"
],
"page-header": [],
"page-footer": [],
"main-nav": [],
"logo": [],
"code": [],
"thumb": [],
"alert": [],
"btn": [],
"to-top": [],
"field-text": [
"--error"
],
"field-checkbox": [
"__input-wrap--error"
],
"field-radio": [
"__input-wrap--error"
],
"field-toggler": [],
"field-file": [
"--error"
],
"field-range": [],
"field-select": [
"--error"
],
"field-actions": [],
"form": [],
"dropdown": [],
"menu": [],
"label": [],
"loader": [],
"table": [],
"table-responsive": [],
"table-mobile-scroll": []
},
"addCssBefore": [
"./src/scss/variables.scss",
"./src/scss/mixins.scss"
],
"addCssAfter": [
"./src/scss/print.scss"
],
"singleCompiled": [
"./src/scss/blocks-library.scss"
],
"addJsBefore": [
"./node_modules/jquery/dist/jquery.min.js",
"./node_modules/jquery-migrate/dist/jquery-migrate.min.js",
"./node_modules/svg4everybody/dist/svg4everybody.js",
"./node_modules/ismobilejs/isMobile.min.js"
],
"addJsAfter": [
"./src/js/global-script.js"
],
"addImages": [
"./src/img/*.{jpg,jpeg,gif,png,svg,ico}"
],
"copiedCss": [],
"copiedJs": [],
"dirs": {
"srcPath": "./src/",
"buildPath": "./build/",
"blocksDirName": "blocks"
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment