💛 You can help the author become a full-time open-source maintainer by sponsoring him on GitHub.
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.
- Bundle your file with esbuild,
node_modulesare excluded because it's problematic to try to bundle it__filename,__dirnameandimport.meta.urlare replaced with source file's value instead of the one from the temporary output file
- Output file in
esmformat if possible (for.ts,.jsinput files) - Load output file with
import()if possible - Return the loaded module and its dependencies (imported files)
npm i bundle-require esbuildesbuild is a peer dependency.
import { bundleRequire } from 'bundle-require'
const { mod } = await bundleRequire({
filepath: './project/vite.config.ts',
})https://www.jsdocs.io/package/bundle-require
Projects that use bundle-require:
- VuePress: 📝 Minimalistic Vue-powered static site generator.
MIT © EGOIST