Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslnode 18–223 runs
build_error
glibcnode 18–223 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
default
✓ import virtual from 'vite-plugin-virtual'
✗ const virtual = require('vite-plugin-virtual')
ESM-only package; cannot be used with require() in Node. Use import statement.
updateVirtualModule
✓ import { updateVirtualModule } from 'vite-plugin-virtual'
✗ import updateVirtualModule from 'vite-plugin-virtual'
Named export, not default. Require destructuring.
invalidateVirtualModule
✓ import { invalidateVirtualModule } from 'vite-plugin-virtual'
✗ import invalidateVirtualModule from 'vite-plugin-virtual'
Named export, not default. Require destructuring.
Creates virtual modules 'virtual:module' and 'virtual:config' and registers them as a Vite plugin.
import virtual from 'vite-plugin-virtual'
export default {
plugins: [
virtual({
'virtual:module': `export default { hello: 'world' }`,
'virtual:config': { hello: 'world' }
})
]
}
// In your source files:
// import obj from 'virtual:config'
// console.log(obj)
Errors
Common errors & fixes
SyntaxError: Cannot use import statement outside a module
Using ESM import in a CommonJS context without configuring type:module in package.json or using .mjs extension.
fixSet package.json type field to "module", rename file to .mjs, or use a bundler that supports ES modules.
TypeError: virtual is not a function
Called the default import incorrectly (e.g., used require() or imported a named export as default).
fixEnsure you are using import virtual from 'vite-plugin-virtual' (default import).
Cannot find module 'vite-plugin-virtual'
Package not installed or not in node_modules.
fixRun 'npm install -D vite-plugin-virtual' in your project directory.
Audit
Dependencies
viterequiredpeer dependency – the plugin requires Vite's dev server and plugin API