UNPKG

@gravityforms/gulp-tasks

Version:
51 lines (32 loc) 2.21 kB
# AGENTS.md - Gulp Tasks Package-specific guidance for `@gravityforms/gulp-tasks`. See root `AGENTS.md` for shared conventions. ## Purpose Centralized build pipeline providing configurable Gulp and webpack tasks used across all Gravity projects for building, linting, testing, and releasing. ## Module System This package is **ESM** (`"type": "module"` in package.json). All `src/` files use `import`/`export`. CJS-only dependencies (`find-config`, `gulp`, `webpack`, `postcss-*`, etc.) are loaded via a `createRequire` bridge named `cjsRequire` to avoid language-server hints about `require()`. Consumer `gravityforms.config.js` files remain CJS — loaded by `findConfig.require()` in `config.js`. ### Consumer Compatibility (v9 breaking changes) Consumers upgrading from v8 must update 3 files: 1. **`config/gulp/webpack.js`** — add `.default` to cache-group-parser import 2. **`babel.config.js`** — add `.default` to babel.config import 3. **`.eslintrc.js`** — update path from `.eslintrc.js` to `.eslintrc.cjs` ## Key Files & Directories - `gulpfile.js` — Main entry point (ESM, static imports for all 16 task files) - `config.js` — Config loader using `createRequire` bridge for `find-config` - `jest.config.cjs` — Jest config (CJS, async imports ESM `config.js`) - `webpack.config.cjs` — Webpack config (CJS, Promise-based import of ESM webpack config) - `.eslintrc.cjs` — ESLint config (CJS, consumed by projects via `require()`) - `jest.setup.js` — Jest setup (ESM, **must not be renamed** — consumer paths hardcode it) - `src/webpack/` — Base webpack configurations (admin, theme, libraries, components) - `src/scripts/` — Utility scripts for builds - `src/packages/` — Internal tools (documentation extractors, etc.) ## Configuration All behavior is driven by the consuming project's `gravityforms.config.js` at the repository root. Webpack overrides live in `config/gulp/webpack.js`. ### Build Targets - `admin` — Admin-side JavaScript - `theme` — Frontend JavaScript - `admincomponents`, `adminblocks`, `adminsettings` — Specific admin bundles - `libraries`, `utils`, `reactutils` — Shared code bundles ## Dependencies - `@gravityforms/node-utils`