vite-plugin-api-auto-import
v0.1.3
Published
Auto-import API generator for Vite
Readme
vite-plugin-api-auto-import
Auto-generate a typed API import module and inject it on-demand into your source files. Works with Vite7 and Vue 2.x/3.x.
Install
pnpm add -D vite-plugin-api-auto-import
# or npm i -D vite-plugin-api-auto-import / yarn add -D vite-plugin-api-auto-importUsage
vite.config.ts (recommended static import)
import { defineConfig } from 'vite'
import autoApi from 'vite-plugin-api-auto-import'
export default defineConfig({
plugins: [
autoApi({
name: '$apis', // global symbol used in your code
dir: 'api', // directory with your API modules
constApiData: '$apiData',
outFile: 'index.ts', // generated file name inside `dir`
include: [ // files to inject import into when they reference `name`
/\.[tj]sx?$/,
/\.vue$/, /\.vue\?vue/,
/\.md$/,
],
// optional
resolvers: [
// { from: '../data', resolve(mod) { return { ccc: mod.ccc } } }
],
// create a Vite alias pointing to your API root automatically
autoResolveAliasName: true,
// or set a custom alias explicitly
// resolveAliasName: '@apis',
allExport: false,
import: true, // true | false | 'namedExport'
})
]
})CommonJS config (vite.config.cjs/js) can use dynamic import
const { defineConfig } = require('vite')
module.exports = defineConfig(async () => {
const { default: autoApi } = await import('vite-plugin-api-auto-import')
return { plugins: [autoApi()] }
})Then reference $apis in your app code and the plugin injects a single import to the generated module.
Compatibility
- Node >= 14.18 (Node 16+ recommended)
- Vite 2 → 6
Changelog
0.1.2
- Fix: generated identifiers strip file extensions correctly and sanitize names. For example
security/encrypt.ts→security_encrypt_import(no.tsin the variable name). - Dual build: proper CJS/ESM outputs (
index.cjs/index.mjs) with matchingexportsfor compatibility across Vite versions and config styles. - Refactor: drop
fs-extraruntime dependency in favor of Nodefs.
0.1.1
- First modernized dual-build release.
Notes
- If
autoResolveAliasNameis false, the plugin uses relative imports (./). If true orresolveAliasNameis set, a Vite alias is added. - The generated file is written to
<dir>/<outFile>at build and on changes under<dir>.
