bundle-import
v0.0.2
Published
Bundle and load a file using the import-from-string.
Downloads
4,585
Maintainers
Readme
Bundle-import
Bundle and load a file using the import-from-string.
Difference from bundle-require
Most of the code of Bundle-import comes from bundle-require. There is no objection to this, but Bundle-import does not generate temporary files when reading module contents, which can avoid conflicts with other tools. For example, the following two issues:
Features
- Support ESM and CJS environments
- Support dynamic import
- Support
import.meta.url
- Support access to global variables
- No asynchronous IO operations
- No module cache
Install
npm install bundle-import
Usage
ESM
import { bundleImport } from "bundle-import";
const { mod: mod1 } = await bundleImport({ filepath: "./fixtures/index.cjs", cwd: `${process.cwd()}/playground` });
console.log(mod1);
const { mod: mod2 } = await bundleImport({ filepath: "./playground/fixtures/index.mjs" });
console.log(mod2.default, mod2);
CJS
const { bundleImport } = require("bundle-import");
async function main() {
const { mod: mod1 } = await bundleImport({ filepath: "./fixtures/index.cjs", cwd: `${process.cwd()}/playground` });
console.log(mod1);
const { mod: mod2 } = await bundleImport({ filepath: "./playground/fixtures/index.mjs" });
console.log(mod2.default, mod2);
}
main();
API
bundleImport(options)
options
cwd
Type: string
Default: process.cwd()
Project root directory.
filename
Type: string
Required: true
The filepath to bundle and require.
external
Type: (string | RegExp)[]
Required: []
External packages.
tsconfig
Type: string
Required: tsconfig.json
A custom tsconfig path to read paths
option.
format
Type: "cjs" | "esm"
\
Provide bundle format explicitly to skip the default format inference.
esbuildOptions
Type: BuildOptions
Required: false
esbuild options.
Appreciation
License
MIT License © 2023-Present Condor Hero