UNPKG

@gravityforms/gulp-tasks

Version:
80 lines (74 loc) 2.67 kB
const gulp = require( 'gulp' ); const getConfig = require( '../../config' ); const { config } = getConfig(); const browserSync = require( 'browser-sync' ); const webpack = require( 'webpack' ); const webpackStream = require( 'webpack-stream' ); const { merge } = require( 'webpack-merge' ); const args = require( '../utils/get-args' ); const webpackAdminDevConfig = require( '../webpack/admindev' ); const webpackAdminSettingsDevConfig = require( '../webpack/adminsettingsdev' ); const webpackAdminBlocksDevConfig = require( '../webpack/adminblocksdev' ); const webpackThemeDevConfig = require( '../webpack/themedev' ); const watchRules = require( '../webpack/rules/watch' ); const watchPlugins = require( '../webpack/plugins/watch' ); const watchConfig = { watch: true, }; webpackAdminDevConfig.module.rules = watchRules; webpackThemeDevConfig.module.rules = watchRules; webpackAdminDevConfig.plugins = watchPlugins.admin; webpackThemeDevConfig.plugins = watchPlugins.theme; function maybeReloadBrowserSync() { const server = browserSync.get( config.browserSync.serverName ); if ( server.active ) { server.reload(); } } module.exports = Object.assign( {}, { main() { // watch tasks from config if ( config?.watchFiles ) { config.watchFiles.forEach( ( entry ) => { if ( entry.series ) { gulp.watch( entry.files, gulp.series( entry.tasks ) ); return; } gulp.watch( entry.files, gulp.parallel( entry.tasks ) ); } ); } }, watchAdminJS() { if ( args.nojs ) { return; } gulp.src( `${ config.paths.js_src }/admin/**/*.js` ) .pipe( webpackStream( merge( webpackAdminDevConfig, watchConfig ), webpack, function( err, stats ) { console.log( stats.toString( { colors: true } ) ); maybeReloadBrowserSync(); } ) ) .pipe( gulp.dest( config.paths.js_dist ) ); }, // the next two legacy blocks of code need to be imported to the main bundle watchAdminSettingsJS() { gulp.src( `${ config.paths.js_src }/legacy/admin/settings/**/*.js` ) .pipe( webpackStream( merge( webpackAdminSettingsDevConfig, watchConfig ), webpack, function( err, stats ) { console.log( stats.toString( { colors: true } ) ); maybeReloadBrowserSync(); } ) ) .pipe( gulp.dest( config.paths.js_dist ) ); }, watchThemeJS() { if ( args.nojs ) { return; } gulp.src( [ `${ config.paths.js_src }/theme/**/*.js`, ] ) .pipe( webpackStream( merge( webpackThemeDevConfig, watchConfig ), webpack, function( err, stats ) { console.log( stats.toString( { colors: true } ) ); maybeReloadBrowserSync(); } ) ) .pipe( gulp.dest( config.paths.js_dist ) ); }, }, config?.tasks?.builtins?.watch || {} );