UNPKG

@gravityforms/gulp-tasks

Version:
71 lines (65 loc) 2.17 kB
import { createRequire } from 'node:module'; import getConfig from '../../config.js'; import args from '../utils/get-args.js'; import webpackAdminDevConfig from '../webpack/admindev.js'; import webpackThemeDevConfig from '../webpack/themedev.js'; import watchRules from '../webpack/rules/watch.js'; import watchPlugins from '../webpack/plugins/watch.js'; const cjsRequire = createRequire( import.meta.url ); const gulp = cjsRequire( 'gulp' ); const browserSync = cjsRequire( 'browser-sync' ); const webpack = cjsRequire( 'webpack' ); const webpackStream = cjsRequire( 'webpack-stream' ); const { merge } = cjsRequire( 'webpack-merge' ); const { config } = getConfig(); 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(); } } export default 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 ) ); }, 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 || {} );