Here is a complete list of all available files and folders in the root directory with a short description.
You don't need to know the contents of each file individually, as you will learn what they do over time. Just make sure you understand what you are responsible for (see the links). In addition, folders/files marked with a prefixed 💡 are important for getting started (that means, learn more about it).
All files and folders written in italics are not saved in Git, but automatically arranged when you develop or deploy the projects.
{% hint style="warning" %} Don't give up too early, because it can take a while until you find your way in the modern (WordPress plugin) development! {% endhint %}
- 📁
my-pluginFolder you created withcreate-wp-react-app create-workspace- 📁
coverageCoverage reports, see this - 📁
.vscodeVisual Studio Code (VSCode) specific files - 📁
commonCommon files can be reused by plugins and packages, or are root specific- 📁
create-wp-react-appTemplates or new plugins created withcreate-wp-react-app, but you can ignore it - just commit it to your repository - 📁
patch-packageSee patch-package package - 📄
.env-defaultDefault values for environment variables which are used in Docker Compose - 📄
.eslintrcESLint configuration file - 📄
generate-launch-json.tsDynamically createlaunch.jsonfile with all available plugins and packages (used for PHP debugging) - 📄
Gruntfile.plugin.tsPredefined tasks for Grunt (only plugin, e. g. build a plugin) - 📄
Gruntfile.tsPredefined tasks for Grunt (packages and plugins) - 📄
hookdoc.jsonConfiguration file for wp-hookdoc, used inyarn docs:hooks - 📄
jest.base.jsBase Jest configuration file - 📄
phpcs.xmlBase PHP CodeSniffer configuration file - 📄
phpunit.base.phpBase PHPUnit bootstrap file - 📄
postcss-plugin-clean.tsclean-css plugin for PostCSS - 📄 💡
tsconfig.jsonBase TypeScript configuration file - 📄
vuepress-php.tsphpDocumentor VuePress theme configuration file, used inyarn docs:php - 📄 💡
webpack.factory.tsBase webpack configuration file for plugins, see here - 📄
webpack.multi.tsMulti-package configuration foryarn docker:start
- 📁
- 📁
devopsFiles related to CI/CD, Docker and so on- 📁
.gitlabCI/CD predefined jobs, included in root.gitlab-ci.ts- 📄
stage-containerize.tsJobs for building and pushing docker files to GitLab container registry - 📄
stage-build.tsJobs for build plugin, docs and linting - 📄
stage-release.tsJobs for release, review applications and wordpress.org deployment - 📄
stage-test.tsJobs for tests - 📄
stage-validate.tsJobs for Docker garbage collection, semantic versioning and license scanner
- 📄
- 📁
dockerPredefined docker images- 📁
gitlab-ciDockerfile used in GitLab CI/CD jobs
- 📁
- 📁
docker-composeCompose files for different contexts- 📄
docker-compose.e2e.ymlUsed in Cypress E2E tests - 📄
docker-compose.local.ymlUsed locally with port expose - 📄
docker-compose.traefik.ymlUsed for Review Apps - 📄
docker-compose.ymlBase compose file, merged automatically with{plugins,packages}/*/devops/docker-compose/docker-compose.ymlfiles for extensibility, see here
- 📄
- 📁
scriptsUsed in Docker containers (mounted)- 📄
container-wordpress-cli-entrypoint.shExtended entrypoint forwordpress-cliservice - 📄
container-wordpress-command.shCommand forwordpressservice - 📄
custom-php.iniCustom PHP configuration file forwordpressservice - 📄
e2e-tests-autologin-plugin.phpMicro-plugin for automatic login via URL in WordPress for E2E tests - 📄
lerna-ready-ci.shMakelernawork in GitLab CI environment - 📄
purge-ci.shPurge Socker resources for E2E tests and Review Apps in CI/CD - 📄
task-xdebug-start.shUsed intasks.jsonfile, starts XDebug in WordPress container - 📄
task-xdebug-stop.shUsed intasks.jsonfile, stops XDebug in WordPress container - 📄 💡
wordpress-startup.shGlobal bash script to for custom actions not specific to single plugins, which get executed in start of the WordPress Docker container
- 📄
- 📁
- 📁
docsDocumentation you currently read available as markdown files - 📁
node_modulesNode dependencies - 📁
packagesNon-plugin packages (e.g. for shared styles)- 📁
utilsPredefined utils package coming withcreate-wp-react-app create-workspace- 📁
devopsFiles related to CI/CD, Docker and so on for this specific package- 📁
.gitlab- 📄
.gitab-ci.tsCI/CD similar root file, included in root.gitlab-ci.ts - 📄
stage-build.tsPredefined jobs for lint, included in./.gitlab-ci.ts - 📄
stage-test.tsJobs for tests - 📄
stage-validate.tsJobs for license scanner
- 📄
- 📁
- 📁
languagesLanguages files for this package- 📁
backendServer-side language files- 📄
utils.potLanguage file can be translated with Poedit
- 📄
- 📁
frontendClient-side language files- 📄
utils.potLanguage file can be translated with Poedit
- 📄
- 📁
- 📁
libTypeScript coding you will consume in your dependents- 📁
componentsPredefined ReactJS components - 📁
factoryFactory functions (pass arguments, get dynamic functions)- 📄 📁
ajax.tsxAJAX related functions (e. g. do WP REST API calls) - 📄 💡
context.tsxReact Context helpers - 📄 💡
i18n.tsx__()and so on for your client-side translations (uses@wordpress/i18n) - 📄
index.tsxExport all files from this folder
- 📄 📁
- 📁
typesAdditional declaration files- 📄
global.d.tsAvoid errors on plain JS packages (see this)
- 📄
- 📁
wp-apiPredefined WP REST API types- 📄
index.tsxExport all files from this folder - 📄
rest.plugin.get.tsxTypes forwp-json/your-plugin/plugin
- 📄
- 📄
helpers.tsxSome helper functions - 📄
index.tsxExport all files from this folder - 📄 💡
options.tsxBase options class ofsrc/inc/base/Assets.phpoutput
- 📁
- 📁
scriptsScripts related to development- 📄 💡
Gruntfile.tsGruntfile for this package, extendscommon/Gruntfile.ts
- 📄 💡
- 📁
srcPHP coding you will consume in your dependents- 📄 💡
Activator.phpAbstract trait for activate, deactivate and install actions - 📄 💡
Assets.phpAbstract trait for assets management - 📄 💡
Base.phpAbstract base trait - 📄 💡
Core.phpAbstract core trait for main initialization of namespacing and so on, similar to the well-knownfunctions.php - 📄 💡
PluginReceiver.phpAbstract trait for package development - 📄 💡
Localization.phpAbstract trait for i18n functionality - 📄 💡
Service.phpFinal class for boilerplate related endpoints - 📄 💡
PackageLocalization.phpExtends from Localization class and is a helper class for package localization
- 📄 💡
- 📁
node_modulesNode dependencies - 📁
test- 📁
jestPut all your Jest tests here - 📁
phpunitPut all your PHPUnit tests here - 📄
jest.config.jsJest configuration file - 📄
jest.setup.jsJest setup file - 📄
patchwork.jsonPatchwork configuration file - 📄
phpunit.bootstrap.phpPHPUnit bootstrap file - 📄
phpunit.xdebug.phpPHPUnit + XDebug filtering for faster code coverage analysis - 📄
phpunit.xmlPHPUnit configuration file
- 📁
- 📄
CHANGELOG.mdConventional changelog output - 📄
composer.jsonComposer configuration file - 📄
composer.lockComposer lock file - 📄
LICENSEPackage license file - 📄
LICENSE_3RD_PARTY_JS.mdYarn dependencies disclaimer, see License checker - 📄
LICENSE_3RD_PARTY_PHP.mdComposer dependencies disclaimer, see License checker - 📄
package.jsonPackage definition file - 📄
README.md"Because no one can read your mind (yet)" - makeareadme.com - 📄
tsconfig.jsonTypeScript configuration file, extendscommon/tsconfig.json
- 📁
- 📁
- 📁 💡
pluginsSee Plugin folder structure - 📄
.gitignoreIgnore files in your Git repository on commit (see this) - 📄 💡
.gitlab-ci.ymlCI/CD root file - 📄 💡
.gitlab-ci.tsCI/CD root file, should include all{packages,plugins}/*/devops/.gitlab/.gitlab-ci.tsfiles - 📄
.prettierignoreIgnore files to be prettified (see this) - 📄
package.jsonPackage definition file with Yarn Workspace definition - 📄
README.md"Because no one can read your mind (yet)" - makeareadme.com - 📄
yarn.lockLock file for JavaScript dependencies
- 📁