{"id":23014,"library":"zmp-vite-plugin","title":"zmp-vite-plugin","description":"A Vite plugin for Zalo Mini App development that integrates with the standard Vite build pipeline. Current stable version is 1.1.6, released under an active maintenance cadence. The plugin automatically reads app-config.json, supports React and vendor chunk splitting, and works with Vite 4 or 5. It simplifies deployment via zmp-cli and is the official Vite integration for Zalo Mini Apps, distinct from other mini-app frameworks.","status":"active","version":"1.1.6","language":"javascript","source_language":"en","source_url":null,"tags":["javascript","typescript"],"install":[{"cmd":"npm install zmp-vite-plugin","lang":"bash","label":"npm"},{"cmd":"yarn add zmp-vite-plugin","lang":"bash","label":"yarn"},{"cmd":"pnpm add zmp-vite-plugin","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency required for plugin to function","package":"vite","optional":false}],"imports":[{"note":"The default export is the plugin function.","wrong":"import { zaloMiniApp } from 'zmp-vite-plugin'","symbol":"default","correct":"import zaloMiniApp from 'zmp-vite-plugin'"},{"note":"CommonJS require must use .default to get the plugin function.","wrong":"const zaloMiniApp = require('zmp-vite-plugin')","symbol":"zaloMiniApp","correct":"const zaloMiniApp = require('zmp-vite-plugin').default"},{"note":"Type import for TypeScript users; avoid value import as it's a type.","wrong":"import { PluginOptions } from 'zmp-vite-plugin'","symbol":"PluginOptions","correct":"import type { PluginOptions } from 'zmp-vite-plugin'"}],"quickstart":{"code":"// vite.config.ts\nimport { defineConfig, splitVendorChunkPlugin } from 'vite';\nimport react from '@vitejs/plugin-react';\nimport zaloMiniApp from 'zmp-vite-plugin';\n\nexport default () => {\n  return defineConfig({\n    plugins: [\n      react(),\n      splitVendorChunkPlugin(),\n      zaloMiniApp(),\n    ],\n  });\n};\n","lang":"typescript","description":"Shows how to set up the plugin in a Vite config with React and vendor chunk splitting."},"warnings":[{"fix":"Either rely on app-config.json or pass explicit options to the plugin.","message":"The plugin reads app-config.json by default; providing options object overrides this.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Ensure Vite version matches peer dependency.","message":"Requires Vite ^4.2.0 || ^5.0.0. Using other Vite versions may cause incompatibility.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use ESM syntax (import/export) in vite.config.ts or use dynamic require with .default.","message":"Plugin is ESM-only; not compatible with CJS Vite configs unless using dynamic import.","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 i -D zmp-vite-plugin","cause":"Plugin not installed or in devDependencies","error":"Cannot find module 'zmp-vite-plugin'"},{"fix":"Change to: import zaloMiniApp from 'zmp-vite-plugin'","cause":"Importing named export instead of default","error":"TypeError: zaloMiniApp is not a function"},{"fix":"Create a valid app-config.json in project root.","cause":"app-config.json missing or malformed","error":"Unhandled rejection: TypeError: Cannot read properties of undefined (reading 'name')"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}