.. include:: /Includes.rst.txt .. _development: =========== Development =========== If you want to participate in the development of the Extension Builder, set up your local development environment as usual. .. contents:: :backlinks: top :class: compact-list :depth: 1 :local: .. _development-build-tooling: Build tooling ============= The JavaScript sources are bundled with `Vite `__. To install dependencies and build the frontend assets, run: .. code-block:: bash npm install npm run build The compiled output is written to :file:`Resources/Public/JavaScript/`. .. _development-linting: Linting ------- Code style is enforced by ESLint (JavaScript), Stylelint (SCSS) and Prettier (formatting). Run all linters in one step: .. code-block:: bash npm run lint Individual linters can be invoked separately: .. code-block:: bash npm run lint:js # ESLint npm run lint:scss # Stylelint npm run lint:format # Prettier (check only) To automatically fix formatting issues: .. code-block:: bash npm run format .. _development-e2e-tests: E2E tests ========= End-to-end tests are written with `Playwright `__ and require the ddev environment to be running: .. code-block:: bash ddev start npm run test:e2e To open the interactive Playwright UI: .. code-block:: bash npm run test:e2e:ui To run tests in a headed browser: .. code-block:: bash npm run test:e2e:headed .. _development-php-tests: PHP tests ========= PHP unit and functional tests use PHPUnit 10 and `TYPO3 Testing Framework `__ ^7. Run unit tests: .. code-block:: bash composer unit-tests Run functional tests (uses SQLite, no database setup required): .. code-block:: bash composer functional-tests Run all checks (PHP CS Fixer, unit tests, functional tests): .. code-block:: bash composer test .. _development-rector: Rector ====== For automated code migrations, `TYPO3 Rector `__ is integrated. Run it with: .. code-block:: bash vendor/bin/rector – *The TYPO3 project - Inspiring people to share*