Get started with 33% off your first certification using code: 33OFFNEW

How to use Vite with WordPress

3 min read
Published on 5th April 2024

Vite is a highly performant build tool designed for modern web projects, offering features like fast cold starts, instant hot module replacement (HMR), and optimized build outputs. Its efficiency and speed make it an attractive choice for WordPress theme and plugin developers looking to streamline their development process. Integrating Vite into a WordPress environment can significantly improve the developer experience by enabling more rapid development cycles and enhancing frontend performance. This article guides you through setting up Vite in your WordPress projects.

Why Use Vite with WordPress?

Vite offers several advantages for WordPress development:

  • Fast Development Server: Vite provides a development server with hot module replacement, which means changes you make to your JavaScript or CSS are reflected instantly without needing a full page reload.
  • Efficient Builds: Vite optimizes your production builds out of the box, ensuring that your site loads quickly.
  • Modern JavaScript Support: Easily use modern JavaScript (ES modules, TypeScript) and CSS (PostCSS, SCSS) in your WordPress themes and plugins.

If you're interested in a more deep-dive on how to set up Vite to compile assets (like Scss and JS), then we have you covered.

Getting Started with Vite in WordPress

Prerequisites:

  • A local WordPress development environment (e.g., Local by Flywheel, XAMPP, or MAMP).
  • Node.js installed on your machine.

Step 1: Initialize a Vite Project

  1. Navigate to Your Theme or Plugin Directory: Use the terminal to navigate to the directory where you want to use Vite, typically within wp-content/themes/your-theme or wp-content/plugins/your-plugin.

  2. Initialize a New Node.js Project: Run npm init -y to create a package.json file.

  3. Install Vite: Install Vite as a development dependency with npm install --save-dev vite.

Step 2: Configure Vite

  1. Create a Vite Configuration File: In the root of your theme or plugin directory, create a file named vite.config.js.

  2. Add Basic Configuration: Open vite.config.js and add the following configuration:

import { defineConfig } from 'vite';

export default defineConfig({
  root: 'src', // Directory where your source files are located
  base: process.env.NODE_ENV === 'production' ? '/wp-content/themes/your-theme/dist/' : '/', // Adjust the production base URL
  build: {
    outDir: '../dist', // Directory for build output relative to the config file
    emptyOutDir: true, // Empties the outDir on build
  },
});

Adjust the paths according to your project structure and requirements.

Step 3: Organize Your Project Files

Create a src directory within your theme or plugin folder. This directory will contain your JavaScript and CSS source files that Vite will process.

Step 4: Develop Your Theme or Plugin

With Vite configured, you can now develop your theme or plugin using modern JavaScript and CSS.

  • Use the vite command to start the development server with HMR.
  • Use vite build to produce a production-ready build of your assets.

Step 5: Enqueue the Script and Styles in WordPress

To use the generated assets in your WordPress theme or plugin, enqueue them in your functions.php file (for themes) or main plugin file:

function mytheme_enqueue_scripts() {
    $version = wp_get_theme()->get('Version');
    $script_url = get_template_directory_uri() . '/dist/main.js';
    wp_enqueue_script('mytheme-script', $script_url, array(), $version, true);

    $style_url = get_template_directory_uri() . '/dist/main.css';
    wp_enqueue_style('mytheme-style', $style_url, array(), $version);
}
add_action('wp_enqueue_scripts', 'mytheme_enqueue_scripts');

Ensure the paths match those defined in your vite.config.js.

Integrating Vite with WordPress can significantly enhance the development workflow, making it faster and more efficient to build modern, high-performance themes and plugins. By following the steps outlined in this guide, you can set up Vite in your WordPress projects and take advantage of its powerful features for frontend development.