{"id":22988,"library":"wordpress-vite-plugin","title":"WordPress Vite Plugin","description":"WordPress Vite Plugin (v1.6.0) is a Vite plugin that integrates Vite into WordPress theme/plugin development, providing hot module replacement, asset bundling, and automatic enqueuing. It supports Vite 3-8, requires Node >=16, ships TypeScript types, and offers a streamlined setup with minimal configuration compared to manual webpack or custom build setups. Release cadence is irregular; key differentiators include native HMR in WordPress admin, automatic asset manifest parsing, and compatibility with both Classic and Block themes. v1.6 introduces support for Vite 6 and 7/8 prereleases.","status":"active","version":"1.6.0","language":"javascript","source_language":"en","source_url":"https://github.com/evo-mark/wordpress-vite-plugin","tags":["javascript","wordpress","vite","vite-plugin","typescript"],"install":[{"cmd":"npm install wordpress-vite-plugin","lang":"bash","label":"npm"},{"cmd":"yarn add wordpress-vite-plugin","lang":"bash","label":"yarn"},{"cmd":"pnpm add wordpress-vite-plugin","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency; required at runtime to provide Vite dev server and build capabilities","package":"vite","optional":false}],"imports":[{"note":"Package is ESM-only since v1, CommonJS require() will not work.","wrong":"const wordpressVitePlugin = require('wordpress-vite-plugin')","symbol":"wordpressVitePlugin","correct":"import wordpressVitePlugin from 'wordpress-vite-plugin'"},{"note":"If using require() in a CommonJS context, you must access the default export via .default","wrong":"const { wordpressVitePlugin } = require('wordpress-vite-plugin')","symbol":"wordpressVitePlugin","correct":"const plugin = require('wordpress-vite-plugin'); module.exports = plugin.default || plugin;"},{"note":"This is a TypeScript type, not a value, so use import type to avoid bundling runtime.","wrong":"import { WordpressVitePluginOptions } from 'wordpress-vite-plugin'","symbol":"WordpressVitePluginOptions","correct":"import type { WordpressVitePluginOptions } from 'wordpress-vite-plugin'"}],"quickstart":{"code":"// vite.config.js\nimport { defineConfig } from 'vite';\nimport wordpressVitePlugin from 'wordpress-vite-plugin';\n\nexport default defineConfig({\n  plugins: [wordpressVitePlugin({\n    input: ['js/main.js', 'css/style.css'],\n    wordpressPluginName: 'my-plugin',\n  })],\n  build: {\n    rollupOptions: {\n      output: {\n        entryFileNames: 'js/[name].js',\n        chunkFileNames: 'js/[name]-[hash].js',\n        assetFileNames: 'css/[name][extname]',\n      },\n    },\n  },\n});","lang":"javascript","description":"Minimal Vite config for WordPress plugin: sets up HMR and build with two input files and custom output structure."},"warnings":[{"fix":"Upgrade Vite to ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0","message":"Vite 3+ required; Vite 2 and earlier are not supported.","severity":"breaking","affected_versions":"<1.0.0"},{"fix":"Use wordpressVitePlugin({...}) instead of wordpressVitePlugin as a direct plugin.","message":"Default export changed from a function to a plugin factory in v1.0; calling wordpressVitePlugin() now returns a Vite plugin object.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Rename 'config' to 'pluginOptions'.","message":"The 'config' option has been replaced by 'pluginOptions' for advanced configuration.","severity":"deprecated","affected_versions":">=1.4.0"},{"fix":"Add define('WP_HOME', 'http://localhost:5173'); to wp-config.php during development.","message":"HMR dev server must be running; for WordPress admin integration, set WP_HOME constant in wp-config.php to match Vite dev server origin.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Set build.manifest: true in vite.config.js.","message":"Asset manifest (dist/.vite/manifest.json) is required for production builds; ensure build.manifest is true in Vite config.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Run npm install wordpress-vite-plugin --save-dev and ensure package.json has 'type': 'module' or use .mjs extension.","cause":"Package not installed or ESM-only import used in CommonJS environment.","error":"Cannot find module 'wordpress-vite-plugin'"},{"fix":"Use import wordpressVitePlugin from 'wordpress-vite-plugin' in ESM, or const plugin = require('wordpress-vite-plugin').default in CommonJS.","cause":"Default import missing or using named import incorrectly in CommonJS.","error":"wordpressVitePlugin is not a function"},{"fix":"Ensure you call wordpressVitePlugin() as a function with options object in the plugins array.","cause":"The imported value is not a properly initialized plugin factory; likely called the factory incorrectly.","error":"Plugin 'wordpress-vite-plugin' does not have a 'name' property"},{"fix":"Add build: { manifest: true } to vite.config.js.","cause":"Production build missing manifest file; build.manifest is not set to true in Vite config.","error":"ENOENT: no such file or directory, open '.../dist/.vite/manifest.json'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}