UNPKG

@gravityforms/gulp-tasks

Version:
89 lines (75 loc) 3.54 kB
# Gravity Forms Gulp Tasks Configurable Gulp tasks for use in Gravity Forms projects. ## Installation Install the module: ```bash npm install @gravityforms/gulp-tasks --save-dev ``` **Note**: This package requires `node` 20.10.0 or later, and `npm` 10.2.3 or later. ## Overview This module encapsulates all of our gulp tasks and makes them reusable by add-ons in the Gravity Forms ecosystem. It has specialized tasks like extracting and injecting icon kits from Icomoon into postcss systems, browsersync enabled dev modes and more. ## Usage After installing, in a `gravityforms.config.js` in the root directory add the following and tweak as needed in regard to paths or adding additional tasks. ```javascript const { resolve } = require( 'path' ); module.export = { gulpConfig: { // basic browsersync settings browserSync: { defaultUrl: 'gravity-forms.local', serverName: 'Gravity Forms Dev', }, // control aspects of the icomoon postcss injector icons: require( './config/gulp/icons' ), // custom jest overrides jest: require( './config/gulp/jest' ), // paths used by webpack and gulp paths: require( './config/gulp/paths' ), // various postcss overrides and configs postcss: require( './config/gulp/postcss' ), // set, extend and override gulp tasks (builtin or custom) tasks: { // extend the built in gulp methods in @gravityforms/gulp-tasks with additional methods builtins: { copy: {}, }, // add names for the custom tasks you extended here. The format is task type, then your custom method, seperated by // a colon. eg: copy:myTask builtinsTasks: [], // map custom tasks not in built ins to be registered against the methods found in a customDir custom: [], // path to the custom dir that maps to the array of tasks above customDir: resolve( __dirname, 'gulp-tasks' ), // object that registers all final tasks to actually be run by Gulp runners: require( './config/gulp/tasks/runners' ), }, // set directories and methods to execute for gulp watch watchFiles: require( './config/gulp/watch-files' ), // override default watch tasks watchTasks: [ 'watch:main', 'watch:watchAdminJS', 'watch:watchThemeJS' ], // set webpack overrides webpack: require( './config/gulp/webpack' ), }, // set project id which is used throughout the system projectId: 'gform', } ``` Then add this to your scripts block in your root package.json to enable all available tasks: ```json { "scripts": { "start": "npm install && cd node_modules/@gravityforms/gulp-tasks && npm run gulp -- dev", "dev": "cd node_modules/@gravityforms/gulp-tasks && npm run gulp -- dev", "dev:admin": "cd node_modules/@gravityforms/gulp-tasks && npm run gulp -- dev --nojs", "dev:theme": "cd node_modules/@gravityforms/gulp-tasks && npm run gulp -- dev --nojs", "dev:admin:serve": "cd node_modules/@gravityforms/gulp-tasks && npm run dev:admin:serve", "dev:theme:serve": "cd node_modules/@gravityforms/gulp-tasks && npm run dev:theme:serve", "dist": "cd node_modules/@gravityforms/gulp-tasks && npm run gulp -- dist", "icons:admin": "cd node_modules/@gravityforms/gulp-tasks && npm run gulp -- icons --admin", "icons:theme": "cd node_modules/@gravityforms/gulp-tasks && npm run gulp -- icons --theme", "validate": "cd node_modules/@gravityforms/gulp-tasks && npm run gulp -- lint", "watch": "cd node_modules/@gravityforms/gulp-tasks && npm run gulp -- watch" } } ``` You can now run any of those tasks with `npm run dev` etc.