// // build task definitions // // run any task with "yarn build ${taskName}" // const livereload = require('gulp-livereload'); const { createTask, composeSeries, composeParallel, detectAndRunEntryTask, } = require('./task'); const createManifestTasks = require('./manifest'); const createScriptTasks = require('./scripts'); const createStyleTasks = require('./styles'); const createStaticAssetTasks = require('./static'); const createEtcTasks = require('./etc'); // packages required dynamically via browserify configuration in dependencies require('loose-envify'); require('@babel/plugin-proposal-object-rest-spread'); require('@babel/plugin-transform-runtime'); require('@babel/plugin-proposal-class-properties'); require('@babel/plugin-proposal-optional-chaining'); require('@babel/plugin-proposal-nullish-coalescing-operator'); require('@babel/preset-env'); require('@babel/preset-react'); require('@babel/core'); const browserPlatforms = ['firefox', 'chrome', 'brave', 'opera']; const shouldIncludeLockdown = !process.argv.includes('--omit-lockdown'); defineAllTasks(); detectAndRunEntryTask(); function defineAllTasks() { const staticTasks = createStaticAssetTasks({ livereload, browserPlatforms, shouldIncludeLockdown, }); const manifestTasks = createManifestTasks({ browserPlatforms }); const styleTasks = createStyleTasks({ livereload }); const scriptTasks = createScriptTasks({ livereload, browserPlatforms }); const { clean, reload, zip } = createEtcTasks({ livereload, browserPlatforms, }); // build for development (livereload) createTask( 'dev', composeSeries( clean, styleTasks.dev, composeParallel( scriptTasks.dev, staticTasks.dev, manifestTasks.dev, reload, ), ), ); // build for test development (livereload) createTask( 'testDev', composeSeries( clean, styleTasks.dev, composeParallel( scriptTasks.testDev, staticTasks.dev, manifestTasks.testDev, reload, ), ), ); // build for prod release createTask( 'prod', composeSeries( clean, styleTasks.prod, composeParallel(scriptTasks.prod, staticTasks.prod, manifestTasks.prod), zip, ), ); // build for CI testing createTask( 'test', composeSeries( clean, styleTasks.prod, composeParallel(scriptTasks.test, staticTasks.prod, manifestTasks.test), zip, ), ); // special build for minimal CI testing createTask('styles', styleTasks.prod); }