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
Resolve custom module content, this like Vite external plugin
import resolve from 'vite-plugin-resolve'
export default {
plugins: [
resolve({
vue: `const vue = window.Vue; export { vue as default }`,
}),
]
}
Load a file
Support nested module id, support return Promise
resolve({
'path/filename': () => require('fs/promises').readFile('path', 'utf-8'),
})
Electron
Resolve Electron ipcRenderer
in Renderer-process
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