{"id":22398,"library":"speed-measure-vite-plugin","title":"Speed Measure Vite Plugin","description":"A Vite plugin that measures the transform speed of other Vite plugins, currently at version 2.0.1. It wraps plugins and records execution time for hooks like transform, resolveId, and load. Compatible with Vite >= 3.0.0. Differentiators: simple API, supports both build and dev mode (with gap detection), and allows custom hook selection and sort order. Ships TypeScript types. Low bundle size.","status":"active","version":"2.0.1","language":"javascript","source_language":"en","source_url":"https://github.com/lbb00/speed-measure-vite-plugin","tags":["javascript","vite speed","uniapp","typescript"],"install":[{"cmd":"npm install speed-measure-vite-plugin","lang":"bash","label":"npm"},{"cmd":"yarn add speed-measure-vite-plugin","lang":"bash","label":"yarn"},{"cmd":"pnpm add speed-measure-vite-plugin","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency, required at version >=3.0.0","package":"vite","optional":false}],"imports":[{"note":"Default import; package is ESM-only. No named export.","wrong":"const smvp = require('speed-measure-vite-plugin')","symbol":"smvp","correct":"import smvp from 'speed-measure-vite-plugin'"},{"note":"There is no named export; use default import.","wrong":"import { SpeedMeasurePlugin } from 'speed-measure-vite-plugin'","symbol":"SpeedMeasurePlugin","correct":"import smvp from 'speed-measure-vite-plugin'"},{"note":"TypeScript users can import the Options interface as a type.","wrong":"","symbol":"Options","correct":"import type { Options } from 'speed-measure-vite-plugin'"}],"quickstart":{"code":"// vite.config.js\nimport { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport smvp from 'speed-measure-vite-plugin'\n\nexport default defineConfig({\n  plugins: smvp([vue()], {\n    hooks: ['transform', 'resolveId', 'load'],\n    sort: (a, b) => b - a,\n    maxGapTimeOnce: 1000\n  })\n})","lang":"javascript","description":"Measures plugin transform speed in a Vite build with Vue."},"warnings":[{"fix":"Replace maxTransformTimeOnce with maxGapTimeOnce in the options object.","message":"Option 'maxTransformTimeOnce' is deprecated. Use 'maxGapTimeOnce' instead.","severity":"deprecated","affected_versions":">=2.0.0"},{"fix":"Use smvp([plugin1, plugin2]) instead of smvp(plugin1, plugin2).","message":"The plugin wraps your plugins; ensure you pass them as an array to smvp, not as separate arguments.","severity":"gotcha","affected_versions":"*"},{"fix":"Use import smvp from 'speed-measure-vite-plugin' instead of import { smvp } from 'speed-measure-vite-plugin'.","message":"Default export changed from named export to default export in v2.0.0.","severity":"breaking","affected_versions":">=2.0.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Use import() syntax or ensure your project is configured for ESM.","cause":"Package is ESM-only, cannot be used with require() in CommonJS context.","error":"ERR_REQUIRE_ESM: require() of ES Module speed-measure-vite-plugin not supported"},{"fix":"Change to import smvp from 'speed-measure-vite-plugin'.","cause":"Using named import { smvp } instead of default import.","error":"TypeError: smvp is not a function"},{"fix":"Wrap your plugins array with smvp: smvp([vue(), ...])","cause":"Passing smvp as a plugin itself, not wrapping others.","error":"Invalid plugin order: smvp should wrap all plugins"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}