API to enqueue assets generated by @wpackio/scripts into your WordPress plugin or theme.

1.5.0 2018-12-30 16:21 UTC


Build Status codecov Latest Stable Version

This is the PHP companion of @wpackio/scripts.

It gives you all the APIs you will need to properly consume assets generated from @wpackio/scripts from your WordPress plugins or themes.

Detailed Documentation

This README only covers the very basics and a quick start guide, without explaining the overall usage.

Please visit our official documentation site for detailed instruction.


Using Composer

We recommend using composer for using this library.

composer require wpackio/enqueue

Then in your plugin main file or functions.php file of your theme, load composer auto-loader.


// Require the composer autoload for getting conflict-free access to enqueue
require_once __DIR__ . '/vendor/autoload.php';

// Instantiate
$enqueue = new \WPackio\Enqueue( 'appName', 'outputPath', '1.0.0', 'plugin', __FILE__ );


If you do not wish to use composer, then download the file Enqueue.php.

Remove the namespace line namespace WPackio; and rename the classname from Enqueue to something less generic, like MyPluginEnqueue. This ensures conflict-free loading.

Then require the file in your plugin entry-point or functions.php file of your theme.


// Require the file yourself
require_once __DIR__ . '/inc/MyPluginEnqueue.php';

// Instantiate
$enqueue = new MyPluginEnqueue( 'appName', 'outputPath', '1.0.0', 'plugin', __FILE__ );

Getting Started

Which ever way, you choose to install, you have to make sure to instantiate the class early during the entry-point of your plugin or theme.

This ensures that we hava necessary javascript in our website frontend and adminend to make webpack code-splitting and dynamic import work.

A common pattern may look like this.

// Assuming this is the main plugin file.

// Require the composer autoload for getting conflict-free access to enqueue
require_once __DIR__ . '/vendor/autoload.php';

// Do stuff through this plugin
class MyPluginInit {
	 * @var \WPackio\Enqueue
	public $enqueue;

	public function __construct() {
		// It is important that we init the Enqueue class right at the plugin/theme load time
		$this->enqueue = new \WPackio\Enqueue( 'wpackplugin', 'dist', '1.0.0', 'plugin', __FILE__ );
		// Enqueue a few of our entry points
		add_action( 'wp_enqueue_scripts', [ $this, 'plugin_enqueue' ] );

	public function plugin_enqueue() {
		$this->enqueue->enqueue( 'app', 'main', [] );
		$this->enqueue->enqueue( 'app', 'mobile', [] );
		$this->enqueue->enqueue( 'foo', 'main', [] );

// Init
new MyPluginInit();

For information on usage and API, please visit official documentation site wpack.io.