vite-plugin-resolve
Custom resolve module content
English | 简体中文
- Compatible Browser, Node.js and Electron
- You can think of this as the implementation of the official tutorial 👉 Virtual Modules Convention
Install
npm i vite-plugin-resolve -D
Usage
import { defineConfig } from 'vite'
import resolve from 'vite-plugin-resolve'
export default defineConfig({
plugins: [
resolve({
vue: `const vue = window.Vue; export { vue as default }`,
}),
]
})
Load a local file
resolve({
'@scope/name': () => require('fs').promises.readFile('path', 'utf-8'),
})
Electron
resolve({
electron: `const { ipcRenderer } = require('electron'); export { ipcRenderer };`,
})
API
resolve(entries)
entries
{
[moduleId: string]:
| ReturnType<Plugin['load']>
| ((...args: Parameters<Plugin['load']>) => ReturnType<Plugin['load']>)
}
You can see the return value type definition here rollup/types.d.ts#L272
What's different from the official Demo?
There are two main differences
- Bypass the builtin
vite:resolve
plugin - Reasonably avoid Pre-Bundling treatment