Skip to content

Latest commit

 

History

History
 
 

resolve

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

vite-plugin-resolve NPM version awesome-vite

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 }`,
    }),
  ]
}

You you can see more about external 👉 vite-plugin-fast-external

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

  1. Bypass the builtin vite:resolve plugin
  2. Reasonably avoid Pre-Bundling