π You can help the author become a full-time open-source maintainer by sponsoring him on GitHub.
bundle-require
Use Case
Projects like Vite need to load config files provided by the user, but you can't do it with just require()
because it's not necessarily a CommonJS module, it could also be a .mjs
or even be written in TypeScript, and that's where the bundle-require
package comes in, it loads the config file regardless what module format it is.
How it works
- Bundle your file with esbuild,
node_modules
are excluded because it's problematic to try to bundle it__filename
,__dirname
andimport.meta.url
are replaced with source file's value instead of the one from the temporary output file
- Output file in
esm
format if possible (for.ts
,.js
input files) - Load output file with
import()
if possible - Return the loaded module and its dependencies (imported files)
Install
npm i bundle-require esbuild
esbuild
is a peer dependency.
Usage
import { bundleRequire } from 'bundle-require'
const { mod } = await bundleRequire({
filepath: './project/vite.config.ts',
})
API
https://www.jsdocs.io/package/bundle-require
Projects Using bundle-require
Projects that use bundle-require:
- VuePress: π Minimalistic Vue-powered static site generator.
Sponsors
License
MIT Β© EGOIST