Switch back to pre-gulp4 version

This commit is contained in:
Holger Könemann 2018-07-04 11:37:13 +02:00
parent 1829f2059c
commit 7cdaeddef7
10 changed files with 258 additions and 9219 deletions

File diff suppressed because one or more lines are too long

2
css/theme.min.css vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,107 +1,179 @@
// Defining requirements
var autoprefixer = require( 'autoprefixer' ),
browserSync = require('browser-sync').create(),
cleanCSS = require( 'gulp-clean-css' ),
concat = require( 'gulp-concat' ),
del = require( 'del' ),
gulp = require( 'gulp' ),
imagemin = require( 'gulp-imagemin' ),
postcss = require( 'gulp-postcss' ),
rename = require( 'gulp-rename' ),
replace = require( 'gulp-replace' ),
sass = require( 'gulp-sass' ),
sourcemaps = require( 'gulp-sourcemaps' ),
uglify = require( 'gulp-uglify' ),
rev = require('gulp-rev'),
revDel = require('rev-del');
var gulp = require( 'gulp' );
var plumber = require( 'gulp-plumber' );
var sass = require( 'gulp-sass' );
var watch = require( 'gulp-watch' );
var cssnano = require( 'gulp-cssnano' );
var rename = require( 'gulp-rename' );
var concat = require( 'gulp-concat' );
var uglify = require( 'gulp-uglify' );
var merge2 = require( 'merge2' );
var imagemin = require( 'gulp-imagemin' );
var ignore = require( 'gulp-ignore' );
var rimraf = require( 'gulp-rimraf' );
var clone = require( 'gulp-clone' );
var merge = require( 'gulp-merge' );
var sourcemaps = require( 'gulp-sourcemaps' );
var browserSync = require( 'browser-sync' ).create();
var del = require( 'del' );
var cleanCSS = require( 'gulp-clean-css' );
var gulpSequence = require( 'gulp-sequence' );
var replace = require( 'gulp-replace' );
var autoprefixer = require( 'gulp-autoprefixer' );
// Configuration file to keep your code DRY
const cfg = require( './gulpconfig.json' );
const paths = cfg.paths;
var cfg = require( './gulpconfig.json' );
var paths = cfg.paths;
// Compile SCSS to CSS
function scss( ) {
return gulp.src( paths.sass + '/*.scss' )
gulp.task( 'watch-scss', ['browser-sync'], function() {
gulp.watch( paths.sass + '/**/*.scss', ['scss-for-dev'] );
});
// Run:
// gulp sass
// Compiles SCSS files in CSS
gulp.task( 'sass', function() {
var stream = gulp.src( paths.sass + '/*.scss' )
.pipe( plumber( {
errorHandler: function( err ) {
console.log( err );
this.emit( 'end' );
}
} ) )
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(sass()).on('error', sass.logError)
.pipe(postcss([
autoprefixer()
]))
.pipe( sass( { errLogToConsole: true } ) )
.pipe( autoprefixer( 'last 2 versions' ) )
.pipe(sourcemaps.write(undefined, { sourceRoot: null }))
.pipe( gulp.dest( paths.css ) );
}
exports.scss = scss;
// Minify CSS
function minifycss( done ) {
gulp.src( paths.css + '/theme.css' )
.pipe( sourcemaps.init( { loadMaps: true } ) )
.pipe( cleanCSS( { compatibility: '*' } ) )
.pipe( rename( { suffix: '.min' } ) )
.pipe( sourcemaps.write( './' ) )
.pipe( gulp.dest( paths.css ) )
return stream;
});
gulp.src( paths.css + '/custom-editor-style.css' )
// Run:
// gulp watch
// Starts watcher. Watcher runs gulp sass task on changes
gulp.task( 'watch', function() {
gulp.watch( paths.sass + '/**/*.scss', ['styles'] );
gulp.watch( [paths.dev + '/js/**/*.js', 'js/**/*.js', '!js/theme.js', '!js/theme.min.js'], ['scripts'] );
//Inside the watch task.
gulp.watch( paths.imgsrc + '/**', ['imagemin-watch'] );
});
/**
* Ensures the 'imagemin' task is complete before reloading browsers
* @verbose
*/
gulp.task( 'imagemin-watch', ['imagemin'], function( ) {
browserSync.reload();
});
// Run:
// gulp imagemin
// Running image optimizing task
gulp.task( 'imagemin', function() {
gulp.src( paths.imgsrc + '/**' )
.pipe( imagemin() )
.pipe( gulp.dest( paths.img ) );
});
// Run:
// gulp cssnano
// Minifies CSS files
gulp.task( 'cssnano', function() {
return gulp.src( paths.css + '/theme.css' )
.pipe( sourcemaps.init( { loadMaps: true } ) )
.pipe( plumber( {
errorHandler: function( err ) {
console.log( err );
this.emit( 'end' );
}
} ) )
.pipe( rename( { suffix: '.min' } ) )
.pipe( cssnano( { discardComments: { removeAll: true } } ) )
.pipe( sourcemaps.write( './' ) )
.pipe( gulp.dest( paths.css ) );
});
gulp.task( 'minifycss', function() {
return gulp.src( paths.css + '/theme.css' )
.pipe( sourcemaps.init( { loadMaps: true } ) )
.pipe( cleanCSS( { compatibility: '*' } ) )
.pipe( plumber( {
errorHandler: function( err ) {
console.log( err ) ;
this.emit( 'end' );
}
} ) )
.pipe( rename( { suffix: '.min' } ) )
.pipe( sourcemaps.write( './' ) )
.pipe( gulp.dest( paths.css ) );
});
done();
};
gulp.task( 'cleancss', function() {
return gulp.src( paths.css + '/*.min.css', { read: false } ) // Much faster
.pipe( ignore( 'theme.css' ) )
.pipe( rimraf() );
});
exports.minifycss = minifycss;
gulp.task( 'styles', function( callback ) {
gulpSequence( 'sass', 'minifycss' )( callback );
} );
// Concatinate scripts and minify them
function scripts( done ) {
// Run:
// gulp browser-sync
// Starts browser-sync task for starting the server.
gulp.task( 'browser-sync', function() {
browserSync.init( cfg.browserSyncWatchFiles, cfg.browserSyncOptions );
} );
// Run:
// gulp watch-bs
// Starts watcher with browser-sync. Browser-sync reloads page automatically on your browser
gulp.task( 'watch-bs', ['browser-sync', 'watch', 'scripts'], function() {
} );
// Run:
// gulp scripts.
// Uglifies and concat all JS files into one
gulp.task( 'scripts', function() {
var scripts = [
// Start - All BS4 stuff
paths.dev + '/js/bootstrap4/bootstrap.js',
// End - All BS4 stuff
paths.dev + '/js/skip-link-focus-fix.js',
// Adding currently empty javascript file to add on for your own themes´ customizations
// Please add any customizations to this .js file only!
paths.dev + '/js/custom-javascript.js'
];
gulp.src( scripts )
.pipe( concat( 'theme.js' ) )
.pipe( gulp.dest( paths.js ) )
gulp.src( scripts )
.pipe( concat( 'theme.min.js' ) )
.pipe( uglify() )
.pipe( gulp.dest( paths.js ) );
done();
}
gulp.src( scripts )
.pipe( concat( 'theme.js' ) )
.pipe( gulp.dest( paths.js ) );
});
exports.scripts = scripts;
// Compress image assets
function imagemin() {
return gulp.src( paths.imgsrc + '/**' )
.pipe( imagemin() )
.pipe( gulp.dest( paths.img ) );
}
exports.imagemin = imagemin;
// Deleting any file inside the /src folder
gulp.task( 'clean-source', function() {
return del( ['src/**/*'] );
});
// Run:
// gulp copy-assets.
// Copy all needed dependency assets files from bower_component assets to themes /js, /scss and /fonts folder. Run this task after bower install or bower update
////////////////// All Bootstrap SASS Assets /////////////////////////
gulp.task( 'copy-assets', function(done) {
gulp.task( 'copy-assets', function() {
////////////////// All Bootstrap 4 Assets /////////////////////////
// Copy all JS files
gulp.src( paths.node + 'bootstrap/dist/js/**/*.js' )
var stream = gulp.src( paths.node + 'bootstrap/dist/js/**/*.js' )
.pipe( gulp.dest( paths.dev + '/js/bootstrap4' ) );
// Copy all Bootstrap SCSS files
@ -124,68 +196,46 @@ gulp.task( 'copy-assets', function(done) {
// _s JS files into /src/js
gulp.src( paths.node + 'undescores-for-npm/js/skip-link-focus-fix.js' )
.pipe( gulp.dest( paths.dev + '/js' ) );
.pipe( gulp.dest( paths.dev + '/js' ) );
// Copy Popper JS files
gulp.src( paths.node + 'popper.js/dist/umd/popper.min.js' )
.pipe( gulp.dest( paths.js + paths.vendor ) );
gulp.src( paths.node + 'popper.js/dist/umd/popper.js' )
.pipe( gulp.dest( paths.js + paths.vendor ) );
done();
return stream;
});
// Deleting any file inside the /src folder
gulp.task( 'clean-source', function() {
return del( ['src/**/*', '!src'] );
// Deleting the files distributed by the copy-assets task
gulp.task( 'clean-vendor-assets', function() {
return del( [paths.dev + '/js/bootstrap4/**', paths.dev + '/sass/bootstrap4/**', './fonts/*wesome*.{ttf,woff,woff2,eot,svg}', paths.dev + '/sass/fontawesome/**', paths.dev + '/sass/underscores/**', paths.dev + '/js/skip-link-focus-fix.js', paths.js + '/**/skip-link-focus-fix.js', paths.js + '/**/popper.min.js', paths.js + '/**/popper.js', ( paths.vendor !== ''?( paths.js + paths.vendor + '/**' ):'' )] );
});
// Deleting any file inside the /dist folder
gulp.task( 'clean-dist', function() {
return del( ['dist/**/*', '!dist'] );
});
function revision( done ) {
// by default, gulp would pick `assets/css` as the base,
// so we need to set it explicitly:
gulp.src([paths.css + '/theme.min.css', paths.js + '/theme.min.js'], {base: './'})
.pipe(rev())
.pipe(gulp.dest('./')) // write rev'd assets to build dir
.pipe(rev.manifest())
.pipe(revDel({dest: './'}))
.pipe(gulp.dest('./')); // write manifest to build dir
done();
};
exports.revision = revision;
// Run
// gulp dist
// Copies the files to the /dist folder for distribution as simple theme
gulp.task( 'dist', gulp.series( 'clean-dist', function(done) {
gulp.src( ['**/*', '!' + paths.bower, '!' + paths.bower + '/**', '!' + paths.node, '!' + paths.node + '/**', '!' + paths.dev, '!' + paths.dev + '/**', '!' + paths.dist, '!' + paths.dist + '/**', '!' + paths.distprod, '!' + paths.distprod + '/**', '!' + paths.sass, '!' + paths.sass + '/**', '!readme.txt', '!readme.md', '!package.json', '!package-lock.json', '!gulpfile.js', '!gulpconfig.json', '!CHANGELOG.md', '!.travis.yml', '!jshintignore', '!codesniffer.ruleset.xml', 'rev-manifest.json', '*'], { 'buffer': false } )
gulp.task( 'dist', ['clean-dist'], function() {
return gulp.src( ['**/*', '!' + paths.bower, '!' + paths.bower + '/**', '!' + paths.node, '!' + paths.node + '/**', '!' + paths.dev, '!' + paths.dev + '/**', '!' + paths.dist, '!' + paths.dist + '/**', '!' + paths.distprod, '!' + paths.distprod + '/**', '!' + paths.sass, '!' + paths.sass + '/**', '!readme.txt', '!readme.md', '!package.json', '!package-lock.json', '!gulpfile.js', '!gulpconfig.json', '!CHANGELOG.md', '!.travis.yml', '!jshintignore', '!codesniffer.ruleset.xml', '*'], { 'buffer': false } )
.pipe( replace( '/js/jquery.slim.min.js', '/js' + paths.vendor + '/jquery.slim.min.js', { 'skipBinary': true } ) )
.pipe( replace( '/js/popper.min.js', '/js' + paths.vendor + '/popper.min.js', { 'skipBinary': true } ) )
.pipe( replace( '/js/skip-link-focus-fix.js', '/js' + paths.vendor + '/skip-link-focus-fix.js', { 'skipBinary': true } ) )
.pipe( gulp.dest( paths.dist ) );
done();
}));
// BrowserSync reload helper function
function reload( done ){
browserSync.reload();
done();
}
// BrowserSync main task
gulp.task( 'watch-bs', function( done ) {
browserSync.init( cfg.browserSyncWatchFiles, cfg.browserSyncOptions );
gulp.watch( paths.sass + '/**/*.scss', gulp.series(scss, minifycss, revision, reload) );
gulp.watch( [paths.dev + '/js/**/*.js', 'js/**/*.js', '!js/theme.js', '!js/theme.min.js'], gulp.series( scripts, revision, reload ) );
//Inside the watch task.
gulp.watch( paths.imgsrc + '/**', gulp.series( imagemin, reload ) );
done();
});
// Deleting any file inside the /dist folder
gulp.task( 'clean-dist', function() {
return del( [paths.dist + '/**'] );
});
// Run
// gulp dist-product
// Copies the files to the /dist-prod folder for distribution as theme with all assets
gulp.task( 'dist-product', ['clean-dist-product'], function() {
return gulp.src( ['**/*', '!' + paths.bower, '!' + paths.bower + '/**', '!' + paths.node, '!' + paths.node + '/**', '!' + paths.dist, '!' + paths.dist +'/**', '!' + paths.distprod, '!' + paths.distprod + '/**', '*'] )
.pipe( gulp.dest( paths.distprod ) );
} );
// Deleting any file inside the /dist-product folder
gulp.task( 'clean-dist-product', function() {
return del( [paths.distprod + '/**'] );
} );

View File

@ -102,9 +102,9 @@ if ( ! function_exists( 'understrap_widgets_init' ) ) {
) );
register_sidebar( array(
'name' => __( 'Bottom Full', 'understrap' ),
'name' => __( 'Footer Full', 'understrap' ),
'id' => 'footerfull',
'description' => 'Full bottom widget with dynmic grid',
'description' => 'Full sized footer widget with dynamic grid',
'before_widget' => '<div id="%1$s" class="footer-widget %2$s '. understrap_slbd_count_widgets( 'footerfull' ) .'">',
'after_widget' => '</div><!-- .footer-widget -->',
'before_title' => '<h3 class="widget-title">',

View File

@ -1,5 +1,5 @@
/*!
* Bootstrap v4.1.0 (https://getbootstrap.com/)
* Bootstrap v4.1.1 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
@ -70,7 +70,7 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.1.0): util.js
* Bootstrap (v4.1.1): util.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -203,7 +203,7 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.1.0): alert.js
* Bootstrap (v4.1.1): alert.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -215,7 +215,7 @@
* ------------------------------------------------------------------------
*/
var NAME = 'alert';
var VERSION = '4.1.0';
var VERSION = '4.1.1';
var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -252,9 +252,11 @@
// Public
_proto.close = function close(element) {
element = element || this._element;
var rootElement = this._element;
var rootElement = this._getRootElement(element);
if (element) {
rootElement = this._getRootElement(element);
}
var customEvent = this._triggerCloseEvent(rootElement);
@ -376,7 +378,7 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.1.0): button.js
* Bootstrap (v4.1.1): button.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -388,7 +390,7 @@
* ------------------------------------------------------------------------
*/
var NAME = 'button';
var VERSION = '4.1.0';
var VERSION = '4.1.1';
var DATA_KEY = 'bs.button';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -540,7 +542,7 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.1.0): carousel.js
* Bootstrap (v4.1.1): carousel.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -552,7 +554,7 @@
* ------------------------------------------------------------------------
*/
var NAME = 'carousel';
var VERSION = '4.1.0';
var VERSION = '4.1.1';
var DATA_KEY = 'bs.carousel';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -1041,7 +1043,7 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.1.0): collapse.js
* Bootstrap (v4.1.1): collapse.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -1053,7 +1055,7 @@
* ------------------------------------------------------------------------
*/
var NAME = 'collapse';
var VERSION = '4.1.0';
var VERSION = '4.1.1';
var DATA_KEY = 'bs.collapse';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -1324,7 +1326,7 @@
var $this = $$$1(this);
var data = $this.data(DATA_KEY);
var _config = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config);
var _config = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config ? config : {});
if (!data && _config.toggle && /show|hide/.test(config)) {
_config.toggle = false;
@ -1401,7 +1403,7 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.1.0): dropdown.js
* Bootstrap (v4.1.1): dropdown.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -1413,7 +1415,7 @@
* ------------------------------------------------------------------------
*/
var NAME = 'dropdown';
var VERSION = '4.1.0';
var VERSION = '4.1.1';
var DATA_KEY = 'bs.dropdown';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -1883,7 +1885,7 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.1.0): modal.js
* Bootstrap (v4.1.1): modal.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -1895,7 +1897,7 @@
* ------------------------------------------------------------------------
*/
var NAME = 'modal';
var VERSION = '4.1.0';
var VERSION = '4.1.1';
var DATA_KEY = 'bs.modal';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -2371,7 +2373,7 @@
return this.each(function () {
var data = $$$1(this).data(DATA_KEY);
var _config = _objectSpread({}, Modal.Default, $$$1(this).data(), typeof config === 'object' && config);
var _config = _objectSpread({}, Default, $$$1(this).data(), typeof config === 'object' && config ? config : {});
if (!data) {
data = new Modal(this, _config);
@ -2461,7 +2463,7 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.1.0): tooltip.js
* Bootstrap (v4.1.1): tooltip.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -2473,7 +2475,7 @@
* ------------------------------------------------------------------------
*/
var NAME = 'tooltip';
var VERSION = '4.1.0';
var VERSION = '4.1.1';
var DATA_KEY = 'bs.tooltip';
var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
@ -2978,7 +2980,7 @@
};
_proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, this.constructor.Default, $$$1(this.element).data(), config);
config = _objectSpread({}, this.constructor.Default, $$$1(this.element).data(), typeof config === 'object' && config ? config : {});
if (typeof config.delay === 'number') {
config.delay = {
@ -3128,7 +3130,7 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.1.0): popover.js
* Bootstrap (v4.1.1): popover.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -3140,7 +3142,7 @@
* ------------------------------------------------------------------------
*/
var NAME = 'popover';
var VERSION = '4.1.0';
var VERSION = '4.1.1';
var DATA_KEY = 'bs.popover';
var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
@ -3325,7 +3327,7 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.1.0): scrollspy.js
* Bootstrap (v4.1.1): scrollspy.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -3337,7 +3339,7 @@
* ------------------------------------------------------------------------
*/
var NAME = 'scrollspy';
var VERSION = '4.1.0';
var VERSION = '4.1.1';
var DATA_KEY = 'bs.scrollspy';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -3464,7 +3466,7 @@
_proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, Default, config);
config = _objectSpread({}, Default, typeof config === 'object' && config ? config : {});
if (typeof config.target !== 'string') {
var id = $$$1(config.target).attr('id');
@ -3637,7 +3639,7 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.1.0): tab.js
* Bootstrap (v4.1.1): tab.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -3649,7 +3651,7 @@
* ------------------------------------------------------------------------
*/
var NAME = 'tab';
var VERSION = '4.1.0';
var VERSION = '4.1.1';
var DATA_KEY = 'bs.tab';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -3885,7 +3887,7 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0): index.js
* Bootstrap (v4.1.1): index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/

2
js/theme.min.js vendored

File diff suppressed because one or more lines are too long

9033
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "understrap",
"version": "0.8.3",
"version": "0.8.2",
"description": "WordPress Theme framework",
"main": "index.js",
"scripts": {
@ -23,30 +23,35 @@
"author": "Holger Koenemann",
"license": "GPL-2.0",
"bugs": {
"url": "https://github.com/understrap/understrap/issues"
"url": "https://github.com/holger1411/understrap/issues"
},
"homepage": "https://understrap.com",
"dependencies": {
"autoprefixer": "^8.6.4",
"bootstrap": "4.1.1",
"browser-sync": "^2.24.5",
"browser-sync": "^2.23.6",
"del": "^3.0.0",
"font-awesome": "^4.7.0",
"gulp": "4.0.0",
"gulp-clean-css": "^3.9.4",
"gulp": "3.9.1",
"gulp-clean-css": "^3.9.2",
"gulp-clone": "2.0.1",
"gulp-concat": "^2.6.1",
"gulp-cssnano": "^2.1.2",
"gulp-ignore": "^2.0.2",
"gulp-imagemin": "^4.1.0",
"gulp-postcss": "^7.0.1",
"gulp-rename": "^1.3.0",
"gulp-replace": "^1.0.0",
"gulp-rev": "^8.1.1",
"gulp-sass": "^4.0.1",
"gulp-merge": "^0.1.1",
"gulp-plumber": "^1.2.0",
"gulp-rename": "^1.2.2",
"gulp-replace": "^0.6.1",
"gulp-rimraf": "^0.2.2",
"gulp-sass": "4.0.1",
"gulp-sequence": "1.0.0",
"gulp-sourcemaps": "2.6.4",
"gulp-uglify": "^3.0.0",
"gulp-watch": "5.0.0",
"merge2": "^1.2.2",
"popper.js": "^1.14.3",
"rev-del": "^1.0.5",
"undescores-for-npm": "^1.0.0"
"merge2": "^1.2.1",
"popper.js": "^1.12.9",
"run-sequence": "^2.2.1",
"undescores-for-npm": "^1.0.0",
"gulp-autoprefixer": "^5.0.0"
}
}

View File