elegantthemes / create-divi-extension

MIT License
188 stars 59 forks source link

IMPORTANT: Transition to the New Divi 5.0 API - Repository Deprecated

Please take note that this repository is no longer maintained and should not be utilized. We strongly recommend that you use the Divi 5.0 API for all new extensions. For further information and to participate in the Divi Beta Program, visit this page: https://devalpha.elegantthemes.com/.

Create Divi 4.x Extension

Create Divi 4.x Extensions with no build configuration.

Create Divi Extension works on macOS, Windows, and Linux. If something doesn’t work, please file an issue.

Quick Overview

cd .../wp-content/plugins
npx create-divi-extension my-extension
cd my-extension
yarn start

(npx comes with npm 5.2+ and higher, see instructions for older npm versions)

Then open your WordPress site to see your extension. When you’re ready to deploy to production, create a minified bundle with yarn build.

npx create-divi-extension my-extension

Get Started Immediately

You don’t need to install or configure tools like Webpack or Babel. They are preconfigured and hidden so that you can focus on the code.

Just create a project, and you’re good to go.

Creating an Extension

You’ll need to have Node >= 6 on your local development machine.

To create a new extension, run a single command from inside your WordPress plugins directory:

npx create-divi-extension my-extension

(npx comes with npm 5.2+ and higher, see instructions for older npm versions)

It will create a directory called my-extension. Inside that directory, it will generate the initial project structure and install the transitive dependencies:

my-extension
├── includes
|   ├── fields
│   │   └── Input
│   │       ├── Input.jsx
│   │       └── style.css
│   ├── modules
│   │   └── HelloWorld
│   │       ├── HelloWorld.jsx
│   │       ├── HelloWorld.php
│   │       └── style.css
│   ├── loader.js
│   ├── loader.php
│   └── MyExtension.php
├── languages
├── node_modules
├── scripts
│   └── frontend.js
├── styles
├── my-extension.php
├── package.json
└── README.md

No configuration or complicated folder structures, just the files you need to build your extension. Once the installation is done, you can open your project folder:

cd my-extension

Inside the newly created project, you can run some built-in commands:

npm start or yarn start

Runs the extension in development mode. Open your WordPress website to view it.

The page will automatically reload if you make changes to the code. You will see the build errors and lint warnings in the console.

Build errors

npm run build or yarn build

Builds the extension for production. It correctly optimizes the build for the best performance.

The build is minified. Your extension is ready to be deployed.

npm run zip or yarn zip

Runs build and then creates a production release zip file.

User Guide

The User Guide includes information on different topics, such as:

A copy of the user guide will be created as README.md in your project folder.

Philosophy

What’s Included?

Your environment will have everything you need to build a Divi extension:

Check out this guide for an overview of how these tools fit together.

The tradeoff is that these tools are preconfigured to work in a specific way. If your project needs more customization, you can "eject" and customize it, but then you will need to maintain the configuration.

Contributing

We'd love to have your helping hand on create-divi-extension! See CONTRIBUTING.md for more information on what we're looking for and how to get started.

Acknowledgements

We are grateful to the authors of create-react-app for creating the awesome tool on which create-divi-extension is based.