diff --git a/changelog.md b/changelog.md index 6e63dba..a906dff 100644 --- a/changelog.md +++ b/changelog.md @@ -84,4 +84,6 @@ 1.2.4 – Переработана система сжатия изображений, теперь изображения сжимаются более эффективно -1.3.0 – Быстрое создание компонентов, готовые компоненты уже в сборке \ No newline at end of file +1.3.0 – Быстрое создание компонентов, готовые компоненты уже в сборке + +1.3.1 – Исправление незначительных ошибок \ No newline at end of file diff --git a/create-component.js b/create-component.js index 0fe697d..0ab8269 100644 --- a/create-component.js +++ b/create-component.js @@ -4,7 +4,7 @@ const path = require('path'); let basePath = './dev/components/'; const files = { - pug: `mixin {component}\n\t.{component}`, + pug: `mixin {component}\n .{component}`, sass: `.{component}` }; @@ -43,7 +43,7 @@ if (args.includes('--js')) { } if (args.includes('--section')) { - files.pug = `mixin {component}\n\tsection.{component}.container\n\t\t.{component}__wrapper.wrapper`; + files.pug = `mixin {component}\n section.{component}.container\n .{component}__wrapper.wrapper`; } args.map(component => { diff --git a/dev/components/_ui/button/button.pug b/dev/components/_ui/button/button.pug index 8ee66ee..0f7eca2 100644 --- a/dev/components/_ui/button/button.pug +++ b/dev/components/_ui/button/button.pug @@ -1,14 +1,14 @@ mixin button(style, type, text, className, options) - - className = `button--${style} ${className || ''}` + - className = `button button--${style} ${className || ''}` if options && options.disabled - className += 'button--disabled' if type === 'link' - a.button(class=className, href=options.link)= text + a(class=className, href=options.link)= text else if type === 'button' - button.button(class=className)= text + button(class=className)= text else if type === 'popup' - button.button.js-open-popup(class=className, data-popup=options.popup)= text + button.js-open-popup(class=className, data-popup=options.popup)= text else if type === 'submit' - button.button(type="submit", class=className)= text \ No newline at end of file + button(type="submit", class=className)= text \ No newline at end of file diff --git a/dev/components/_ui/input/input.pug b/dev/components/_ui/input/input.pug index fbaff45..295351b 100644 --- a/dev/components/_ui/input/input.pug +++ b/dev/components/_ui/input/input.pug @@ -1,4 +1,4 @@ -mixin input(type, label, name, placeholder, value, className, options) +mixin input(type, label, name, placeholder, className, options) label.input(class=`${className || ''}`) if label.length p.input__label= label @@ -6,9 +6,9 @@ mixin input(type, label, name, placeholder, value, className, options) class=`${className ? className + '-field' : ''}`, type=type, name=name, - required=required, + required=options && options.required, placeholder=placeholder, - value=value, + value=options && options.value, readonly=options && options.readonly) if options && options.error p.input__error= options.error \ No newline at end of file diff --git a/dev/components/_ui/input/input.sass b/dev/components/_ui/input/input.sass index 3150d6b..ca6e6d7 100644 --- a/dev/components/_ui/input/input.sass +++ b/dev/components/_ui/input/input.sass @@ -5,7 +5,7 @@ border-color: $black &--error .input__error - display: block; + display: block &__label margin-bottom: 5px color: $black diff --git a/dev/components/footer/footer.pug b/dev/components/footer/footer.pug index 36bc80a..24c0946 100644 --- a/dev/components/footer/footer.pug +++ b/dev/components/footer/footer.pug @@ -1,3 +1,3 @@ mixin footer - footer.footer.container - .footer__wrapper.wrapper \ No newline at end of file + footer.footer.container + .footer__wrapper.wrapper \ No newline at end of file diff --git a/dev/components/header/header.pug b/dev/components/header/header.pug index c7550e9..89fdc61 100644 --- a/dev/components/header/header.pug +++ b/dev/components/header/header.pug @@ -1,3 +1,3 @@ mixin header - header.header.container - .header__wrapper.wrapper \ No newline at end of file + header.header.container + .header__wrapper.wrapper \ No newline at end of file diff --git a/dev/manifest.json b/dev/manifest.json index c566b9a..3fe33f6 100644 --- a/dev/manifest.json +++ b/dev/manifest.json @@ -1,41 +1,41 @@ { - "name": "Application Name", - "short_name": "AppName", - "icons": [ - { - "src": "img/favicons/128x128.png", - "sizes": "128x128", - "type": "img/png" - }, - { - "src": "img/favicons/144x144.png", - "sizes": "144x144", - "type": "img/png" - }, - { - "src": "img/favicons/152x152.png", - "sizes": "152x152", - "type": "img/png" - }, - { - "src": "img/favicons/192x192.png", - "sizes": "192x192", - "type": "img/png" - }, - { - "src": "img/favicons/256x256.png", - "sizes": "256x256", - "type": "img/png" - }, - { - "src": "img/favicons/512x512.png", - "sizes": "512x512", - "type": "img/png" - } - ], - "start_url": "index.html", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#000000", - "orientation": "portrait-primary" + "name": "Application Name", + "short_name": "AppName", + "icons": [ + { + "src": "img/favicons/128x128.png", + "sizes": "128x128", + "type": "img/png" + }, + { + "src": "img/favicons/144x144.png", + "sizes": "144x144", + "type": "img/png" + }, + { + "src": "img/favicons/152x152.png", + "sizes": "152x152", + "type": "img/png" + }, + { + "src": "img/favicons/192x192.png", + "sizes": "192x192", + "type": "img/png" + }, + { + "src": "img/favicons/256x256.png", + "sizes": "256x256", + "type": "img/png" + }, + { + "src": "img/favicons/512x512.png", + "sizes": "512x512", + "type": "img/png" + } + ], + "start_url": "index.html", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#000000", + "orientation": "portrait-primary" } \ No newline at end of file diff --git a/dev/pug/assets/_og.pug b/dev/pug/assets/_og.pug index b896ad4..39385ed 100644 --- a/dev/pug/assets/_og.pug +++ b/dev/pug/assets/_og.pug @@ -1,7 +1,7 @@ //- Мета теги для соц. сетей Open Graph mixin open-graph(title, url, image, description) - meta(property="og:title", content=title) - meta(property="og:url", content=url) - meta(property="og:type", content='website') - meta(property="og:image", content=image) - meta(property="og:description", content=description) \ No newline at end of file + meta(property="og:title", content=title) + meta(property="og:url", content=url) + meta(property="og:type", content='website') + meta(property="og:image", content=image) + meta(property="og:description", content=description) \ No newline at end of file diff --git a/dev/pug/index.pug b/dev/pug/index.pug index 4085e13..9fd1e55 100644 --- a/dev/pug/index.pug +++ b/dev/pug/index.pug @@ -21,7 +21,7 @@ html(lang="ru", prefix="og: http://ogp.me/ns#") section.container .wrapper h1(style="margin: 35px 0") Gulp Pure Start - sup(style="font-size: 12px") v1.3.0 + sup(style="font-size: 12px") v1.3.1 h3(style="margin-bottom: 25px") Примеры компонентов h4(style="margin-bottom: 10px") 1. Кнопки @@ -38,11 +38,11 @@ html(lang="ru", prefix="og: http://ogp.me/ns#") h4(style="margin-bottom: 10px") 2. Инпуты div(style="max-width: 400px; margin-bottom: 10px") - +input('text', 'Лейбл:', 'data', 'Плейсхолдер', '', '', {error: 'Неверные данные'}) + +input('text', 'Лейбл:', 'data', 'Плейсхолдер', '', {required: true, error: 'Неверные данные'}) div(style="max-width: 400px; margin-bottom: 10px") - +input('text', '', 'data', 'Плейсхолдер', 'Только для чтения', '', {readonly: true}) + +input('text', '', 'data', 'Плейсхолдер', '', {value: 'Только для чтения', required: true, readonly: true}) div(style="max-width: 400px; margin-bottom: 25px") - +input('text', 'Инпут с ошибкой:', 'error', 'Плейсхолдер', 'Текст', 'input--error', {error: 'Неверные данные'}) + +input('text', 'Инпут с ошибкой:', 'error', 'Плейсхолдер', 'input--error', {value: 'Текст', required: true, error: 'Неверные данные'}) h4(style="margin-bottom: 10px") 3. Чекбоксы div(style="max-width: 400px; margin-bottom: 25px") diff --git a/gulpfile.js b/gulpfile.js index 3387c64..4a0824b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,7 +1,7 @@ /* * Gulp Pure Start © 2017 – 2021, Nikita Mihalyov * ISC Licensed - * v1.3.0 + * v1.3.1 */ 'use strict'; @@ -12,245 +12,245 @@ const prod = './prod'; // билд в продакшен // Подключаем все необходимые плагины const gulp = require('gulp'), // Сам сборщик Gulp - sass = require('gulp-sass'), // Компиляция SASS/SCSS - mmq = require('gulp-merge-media-queries'), // Соединение медиа-запросов - pug = require('gulp-pug'), // Компиляция Pug - browserSync = require('browser-sync'), // Запуск локального сервера - babel = require('gulp-babel'), // Транспиляция ES6 в ES5 - sourcemaps = require('gulp-sourcemaps'), // Sourcemap'ы к файлам - uglify = require('gulp-uglify-es').default, // Минификация файлов JavaScript - cssnano = require('gulp-cssnano'), // Минификация файлов CSS - rename = require('gulp-rename'), // Переименовывание файлов - critical = require('critical').stream, // Создание критических стилей - del = require('del'), // Удаление файлов директории - imagemin = require('gulp-imagemin'), // Минификация изображений (в зависимостях также идут дополнительные пакеты) - autoprefixer = require('gulp-autoprefixer'), // Расстановка вендорных перфиксов - plumber = require('gulp-plumber'), // Предотвращение разрыв pipe'ов, вызванных ошибками gulp-плагинов - notify = require('gulp-notify'), // Вывод уведомления + sass = require('gulp-sass'), // Компиляция SASS/SCSS + mmq = require('gulp-merge-media-queries'), // Соединение медиа-запросов + pug = require('gulp-pug'), // Компиляция Pug + browserSync = require('browser-sync'), // Запуск локального сервера + babel = require('gulp-babel'), // Транспиляция ES6 в ES5 + sourcemaps = require('gulp-sourcemaps'), // Sourcemap'ы к файлам + uglify = require('gulp-uglify-es').default, // Минификация файлов JavaScript + cssnano = require('gulp-cssnano'), // Минификация файлов CSS + rename = require('gulp-rename'), // Переименовывание файлов + critical = require('critical').stream, // Создание критических стилей + del = require('del'), // Удаление файлов директории + imagemin = require('gulp-imagemin'), // Минификация изображений (в зависимостях также идут дополнительные пакеты) + autoprefixer = require('gulp-autoprefixer'), // Расстановка вендорных перфиксов + plumber = require('gulp-plumber'), // Предотвращение разрыв pipe'ов, вызванных ошибками gulp-плагинов + notify = require('gulp-notify'), // Вывод уведомления importFile = require('gulp-file-include'), // Импорт файлов (@@include('path/to/file')) imageminJpeg = require('imagemin-mozjpeg'), imageminPng = require('imagemin-pngquant'); // Компилируем SASS (можно изменить на SCSS) в CSS с минификацией и добавляем вендорные префиксы gulp.task('sass', () => { - return gulp.src(`${dev}/sass/style.sass`) // в этом файле хранятся основные стили, остальные следует импортировать в него - .pipe(sourcemaps.init()) // инциализация sourcemap'ов - .pipe(sass({ - outputStyle: ':nested' // компиляции в CSS с отступами - })) - .on('error', notify.onError({ - title: 'SASS', - message: '<%= error.message %>' // вывод сообщения об ошибке - })) - .pipe(autoprefixer(['last 15 versions', '> 1%'], {cascade: false})) // настройка автоматической подстановки вендорных префиксов - .pipe(mmq()) // собираем все медиа запросы - .pipe(cssnano()) // минификация стилей - .pipe(rename({ - suffix: '.min' // переименовываем минифицированный файл стилей - })) - .pipe(sourcemaps.write()) // запись sourcemap'ов - .pipe(gulp.dest(`${build}/css`)) // путь вывода файла - .pipe(browserSync.reload({ - stream: true // инжектим стили без перезагрузки страницы - })); + return gulp.src(`${dev}/sass/style.sass`) // в этом файле хранятся основные стили, остальные следует импортировать в него + .pipe(sourcemaps.init()) // инциализация sourcemap'ов + .pipe(sass({ + outputStyle: ':nested' // компиляции в CSS с отступами + })) + .on('error', notify.onError({ + title: 'SASS', + message: '<%= error.message %>' // вывод сообщения об ошибке + })) + .pipe(autoprefixer(['last 15 versions', '> 1%'], {cascade: false})) // настройка автоматической подстановки вендорных префиксов + .pipe(mmq()) // собираем все медиа запросы + .pipe(cssnano()) // минификация стилей + .pipe(rename({ + suffix: '.min' // переименовываем минифицированный файл стилей + })) + .pipe(sourcemaps.write()) // запись sourcemap'ов + .pipe(gulp.dest(`${build}/css`)) // путь вывода файла + .pipe(browserSync.reload({ + stream: true // инжектим стили без перезагрузки страницы + })); }); // Таск SASS для продакшена, без sourcemap'ов gulp.task('_sass', () => { - return gulp.src(`${dev}/sass/style.sass`) - .pipe(sass()) - .pipe(autoprefixer(['last 15 versions', '> 1%'], {cascade: false})) - .pipe(mmq()) - .pipe(cssnano()) - .pipe(rename({ - suffix: '.min' - })) - .pipe(gulp.dest(`${prod}/css`)); + return gulp.src(`${dev}/sass/style.sass`) + .pipe(sass()) + .pipe(autoprefixer(['last 15 versions', '> 1%'], {cascade: false})) + .pipe(mmq()) + .pipe(cssnano()) + .pipe(rename({ + suffix: '.min' + })) + .pipe(gulp.dest(`${prod}/css`)); }); // Компилируем Pug в HTML без его минификации gulp.task('pug', () => { - return gulp.src(`${dev}/pug/*.pug`) // файлы pug препроцессора - .pipe(pug({ - pretty: true // компилируем pug в html без сжатия - })) - .on('error', notify.onError({ - title: 'PUG', - message: '<%= error.message %>' // выводим сообщение об ошибке - })) - .pipe(gulp.dest(`${build}`)) // путь вывода html файлов - .pipe(browserSync.reload({ - stream: true // перезагружаем страницу - })); + return gulp.src(`${dev}/pug/*.pug`) // файлы pug препроцессора + .pipe(pug({ + pretty: true // компилируем pug в html без сжатия + })) + .on('error', notify.onError({ + title: 'PUG', + message: '<%= error.message %>' // выводим сообщение об ошибке + })) + .pipe(gulp.dest(`${build}`)) // путь вывода html файлов + .pipe(browserSync.reload({ + stream: true // перезагружаем страницу + })); }); // Таск PUG для продакшена - генерация критических стилей gulp.task('_pug', () => { - return gulp.src(`${dev}/pug/*.pug`) - .pipe(pug({ - pretty: true - })) - .pipe(critical({ // генерируем критический CSS для быстрой загрузки страниц - base: `${build}/`, // из всех наших файлов + return gulp.src(`${dev}/pug/*.pug`) + .pipe(pug({ + pretty: true + })) + .pipe(critical({ // генерируем критический CSS для быстрой загрузки страниц + base: `${build}/`, // из всех наших файлов minify: true, // с минификацией - inline: true, - width: 1920, - height: 1280, - css: [`${build}/css/style.min.css`] // путь к вашему основному файлу стилей, или несколько файлов через звпятую - })) - .on('error', notify.onError({ - title: 'PUG', - message: '<%= error.message %>' - })) - .pipe(gulp.dest(`${prod}`)); + inline: true, + width: 1920, + height: 1280, + css: [`${build}/css/style.min.css`] // путь к вашему основному файлу стилей, или несколько файлов через звпятую + })) + .on('error', notify.onError({ + title: 'PUG', + message: '<%= error.message %>' + })) + .pipe(gulp.dest(`${prod}`)); }); // Подключаем JS файлы результирующего файла common.js, конкатенируем и минифицируем gulp.task('scripts', () => { - return gulp.src(`${dev}/js/common.js`) // основной файл скриптов - .pipe(plumber({ - errorHandler: notify.onError({ - title: 'JavaScript', - message: '<%= error.message %>' // выводим сообщение об ошибке - }) - })) - .pipe(importFile({ // - prefix: '@@', // импортим все файлы, описанные в результирующем js - basepath: '@file' // - })) - .pipe(sourcemaps.init()) // инициализация sourcemap'ов - .pipe(babel({ + return gulp.src(`${dev}/js/common.js`) // основной файл скриптов + .pipe(plumber({ + errorHandler: notify.onError({ + title: 'JavaScript', + message: '<%= error.message %>' // выводим сообщение об ошибке + }) + })) + .pipe(importFile({ // + prefix: '@@', // импортим все файлы, описанные в результирующем js + basepath: '@file' // + })) + .pipe(sourcemaps.init()) // инициализация sourcemap'ов + .pipe(babel({ presets: ['@babel/preset-env'] })) - .pipe(uglify()) // минификация JS - .pipe(rename({ - suffix: '.min' // переименовываем сжатый файл - })) - .pipe(sourcemaps.write()) // запись sourcemap'ов - .pipe(gulp.dest(`${build}/js`)) // путь вывода файлов - .pipe(browserSync.reload({ - stream: true // перезагружаем страницу - })); + .pipe(uglify()) // минификация JS + .pipe(rename({ + suffix: '.min' // переименовываем сжатый файл + })) + .pipe(sourcemaps.write()) // запись sourcemap'ов + .pipe(gulp.dest(`${build}/js`)) // путь вывода файлов + .pipe(browserSync.reload({ + stream: true // перезагружаем страницу + })); }); // Таск scripts для продакшена, без sourcemap'ов gulp.task('_scripts', () => { - return gulp.src(`${dev}/js/common.js`) - .pipe(importFile({ - prefix: '@@', - basepath: '@file' - })) - .pipe(babel({ + return gulp.src(`${dev}/js/common.js`) + .pipe(importFile({ + prefix: '@@', + basepath: '@file' + })) + .pipe(babel({ presets: ['@babel/preset-env'] })) - .pipe(uglify()) - .pipe(rename({ - suffix: '.min' - })) - .pipe(gulp.dest(`${prod}/js`)) + .pipe(uglify()) + .pipe(rename({ + suffix: '.min' + })) + .pipe(gulp.dest(`${prod}/js`)) }); // Подключаем JS файлы бибилотек конкатенируем их и минифицируем gulp.task('jsLibs', () => { - return gulp.src(`${dev}/js/libs.js`) // файл, в который импортируются наши библиотеки - .pipe(plumber({ - errorHandler: notify.onError({ - title: 'JavaScript', - message: '<%= error.message %>' // выводим сообщение об ошибке - }) - })) - .pipe(importFile({ // - prefix: '@@', // импортим все файлы, описанные в результирующем js - basepath: '@file' // - })) - .pipe(uglify()) // минификация JS - .pipe(rename({ - suffix: '.min' // переименовываем сжатый файл - })) - .pipe(gulp.dest(`${build}/js`)) // путь вывода файлов - .pipe(browserSync.reload({ - stream: true // перезагружаем страницу - })); + return gulp.src(`${dev}/js/libs.js`) // файл, в который импортируются наши библиотеки + .pipe(plumber({ + errorHandler: notify.onError({ + title: 'JavaScript', + message: '<%= error.message %>' // выводим сообщение об ошибке + }) + })) + .pipe(importFile({ // + prefix: '@@', // импортим все файлы, описанные в результирующем js + basepath: '@file' // + })) + .pipe(uglify()) // минификация JS + .pipe(rename({ + suffix: '.min' // переименовываем сжатый файл + })) + .pipe(gulp.dest(`${build}/js`)) // путь вывода файлов + .pipe(browserSync.reload({ + stream: true // перезагружаем страницу + })); }); // Минифицируем изображения gulp.task('img', () => { - return gulp.src(`${dev}/img/**/*`) // путь ко всем изображениям - .pipe(imagemin([ // сжатие изображений без потери качества - imageminJpeg(), // сжатие jpeg + return gulp.src(`${dev}/img/**/*`) // путь ко всем изображениям + .pipe(imagemin([ // сжатие изображений без потери качества + imageminJpeg(), // сжатие jpeg imageminPng() // сжатие png ], { progressive: true, strip: true })) - .pipe(gulp.dest(`${build}/img`)); // путь вывода файлов + .pipe(gulp.dest(`${build}/img`)); // путь вывода файлов }); // Переносим шрифты gulp.task('fonts', () => { - return gulp.src(`${dev}/fonts/**/*`) - .pipe(gulp.dest(`${build}/fonts`)); + return gulp.src(`${dev}/fonts/**/*`) + .pipe(gulp.dest(`${build}/fonts`)); }); // Запускаем наш локальный сервер gulp.task('browser-sync', () => { - browserSync({ - server: { - baseDir: `${build}` // корневая папка для запускаемого проекта - }, - notify: false // отключаем стандартные уведомления browsersync - }); + browserSync({ + server: { + baseDir: `${build}` // корневая папка для запускаемого проекта + }, + notify: false // отключаем стандартные уведомления browsersync + }); }); // Переносим файл манифеста в папку build gulp.task('manifest', () => { - return gulp.src(`${dev}/manifest.json`) - .pipe(gulp.dest(`${build}/`)); + return gulp.src(`${dev}/manifest.json`) + .pipe(gulp.dest(`${build}/`)); }); // Следим за изменениями файлов и выполняем соответствующие таски gulp.task('default', gulp.parallel('sass', 'img', 'pug', 'jsLibs', 'scripts', 'fonts', 'manifest', 'browser-sync', () => { - // стили - gulp.watch(`${dev}/**/*.sass`, gulp.series('sass')); - // разметка - gulp.watch(`${dev}/**/*.pug`, gulp.series('pug')); - // скрипты - gulp.watch(`${dev}/**/*.js`, gulp.series('scripts')); - // скрипты библиотек - gulp.watch(`${dev}/js/libs.js`, gulp.series('jsLibs')); - // шрифты - gulp.watch(`${dev}/fonts/**/*`, gulp.series('fonts')); - // изображения - gulp.watch(`${dev}/img/**/*`, gulp.series('img')); - // манифест + // стили + gulp.watch(`${dev}/**/*.sass`, gulp.series('sass')); + // разметка + gulp.watch(`${dev}/**/*.pug`, gulp.series('pug')); + // скрипты + gulp.watch(`${dev}/**/*.js`, gulp.series('scripts')); + // скрипты библиотек + gulp.watch(`${dev}/js/libs.js`, gulp.series('jsLibs')); + // шрифты + gulp.watch(`${dev}/fonts/**/*`, gulp.series('fonts')); + // изображения + gulp.watch(`${dev}/img/**/*`, gulp.series('img')); + // манифест gulp.watch(`${dev}/manifest.json`, gulp.series('manifest')); })); // Удаляем все лишние файлы: '.gitkeep', 'changelog.md' и 'readme.md' gulp.task('misc', async () => { - return del.sync(['**/.gitkeep', '.assets', 'changelog.md', 'readme.md']); + return del.sync(['**/.gitkeep', '.assets', 'changelog.md', 'readme.md']); }); // Очищаем директорию продакшен билда gulp.task('clean', async () => { - return del.sync(`${prod}/**/*`); + return del.sync(`${prod}/**/*`); }); // Собираем наш билд в продакшен gulp.task('prod', gulp.series('clean', 'img', '_sass', '_pug', 'jsLibs', '_scripts', async () => { - // Собираем JS - gulp.src(`${build}/js/libs.min.js`) - .pipe(gulp.dest(`${prod}/js`)); + // Собираем JS + gulp.src(`${build}/js/libs.min.js`) + .pipe(gulp.dest(`${prod}/js`)); - // Собираем шрифты - gulp.src(`${dev}/fonts/**/*`) - .pipe(gulp.dest(`${prod}/fonts`)); + // Собираем шрифты + gulp.src(`${dev}/fonts/**/*`) + .pipe(gulp.dest(`${prod}/fonts`)); - // Собираем изображения - gulp.src(`${build}/img/**/*`) - .pipe(gulp.dest(`${prod}/img`)); + // Собираем изображения + gulp.src(`${build}/img/**/*`) + .pipe(gulp.dest(`${prod}/img`)); - // Собираем manifest.json - gulp.src(`${dev}/manifest.json`) - .pipe(gulp.dest(`${prod}/`)); + // Собираем manifest.json + gulp.src(`${dev}/manifest.json`) + .pipe(gulp.dest(`${prod}/`)); })); \ No newline at end of file diff --git a/package.json b/package.json index 5812dd0..a8adde1 100644 --- a/package.json +++ b/package.json @@ -1,43 +1,43 @@ { - "name": "gulp-pure-start", - "version": "1.3.0", - "description": "Start your project with 'Gulp Pure Start' easily then ever!", - "main": "gulpfile.js", - "keywords": [ - "gulp", - "pure", - "start" - ], - "author": "Nikita Mihalyov ", + "name": "gulp-pure-start", + "version": "1.3.0", + "description": "Start your project with 'Gulp Pure Start' easily then ever!", + "main": "gulpfile.js", + "keywords": [ + "gulp", + "pure", + "start" + ], + "author": "Nikita Mihalyov ", "license": "ISC", "scripts": { "comp": "node ./create-component.js" }, - "devDependencies": { + "devDependencies": { "@babel/core": "^7.11.6", "@babel/preset-env": "^7.11.5", - "babel-preset-es2015": "^6.24.1", - "browser-sync": "^2.26.12", - "critical": "^2.0.4", - "del": "^6.0.0", - "gulp": "^4.0.2", - "gulp-autoprefixer": "^7.0.1", - "gulp-babel": "^8.0.0", - "gulp-cssnano": "^2.1.3", - "gulp-file-include": "^2.2.2", - "gulp-imagemin": "^7.1.0", - "gulp-merge-media-queries": "^0.2.1", - "gulp-notify": "^3.2.0", - "gulp-plumber": "^1.2.1", - "gulp-pug": "^4.0.1", - "gulp-rename": "^2.0.0", - "gulp-sass": "^4.1.0", - "gulp-sourcemaps": "^2.6.5", - "gulp-uglify-es": "^2.0.0", - "imagemin-mozjpeg": "^9.0.0", - "imagemin-pngquant": "^9.0.0" - }, - "dependencies": { - "sanitize.css": "^12.0.1" - } + "babel-preset-es2015": "^6.24.1", + "browser-sync": "^2.26.12", + "critical": "^2.0.4", + "del": "^6.0.0", + "gulp": "^4.0.2", + "gulp-autoprefixer": "^7.0.1", + "gulp-babel": "^8.0.0", + "gulp-cssnano": "^2.1.3", + "gulp-file-include": "^2.2.2", + "gulp-imagemin": "^7.1.0", + "gulp-merge-media-queries": "^0.2.1", + "gulp-notify": "^3.2.0", + "gulp-plumber": "^1.2.1", + "gulp-pug": "^4.0.1", + "gulp-rename": "^2.0.0", + "gulp-sass": "^4.1.0", + "gulp-sourcemaps": "^2.6.5", + "gulp-uglify-es": "^2.0.0", + "imagemin-mozjpeg": "^9.0.0", + "imagemin-pngquant": "^9.0.0" + }, + "dependencies": { + "sanitize.css": "^12.0.1" + } } diff --git a/readme.md b/readme.md index 81fb011..e3f75cd 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,7 @@ # Gulp Pure Start ![Gulp Pure Start logo](.assets/logo.png) -v1.3.0 +v1.3.1 **Gulp Pure Start** позволяет легко и быстро начать работу над проектом с использованием сборщика Gulp.