0.0.2 • Published 3 months ago

@abstract-money/bundle-require v0.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

@abstract-money/bundle-require

npm version npm downloads jsDocs.io

Disclaimer

This package is a fork of egoist/bundle-require version 3.1.2 with the corrected esbuild peer dependency as one breaks when used as peer in the projects that depend on the esbuild<0.17.0.

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 and import.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 @abstract-money/bundle-require esbuild

esbuild is a peer dependency.

Usage

import { bundleRequire } from '@abstract-money/bundle-require'

const { mod } = await bundleRequire({
  filepath: './project/vite.config.ts',
})

API

https://www.jsdocs.io/package/@abstract-money/bundle-require

Projects Using @abstract-money/bundle-require

Projects that use @abstract-money/bundle-require:

  • VuePress: :memo: Minimalistic Vue-powered static site generator.

Sponsors

sponsors

License

MIT © EGOIST

0.0.2

3 months ago

0.0.1

5 months ago