Bundle and load a file using the import-from-string.
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:
- Support ESM and CJS environments
- Support dynamic import
- Support
import.meta.url
- Support access to global variables
- No asynchronous IO operations
- No module cache
npm install bundle-import
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);
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();
Type: string
Default: process.cwd()
Project root directory.
Type: string
Required: true
The filepath to bundle and require.
Type: (string | RegExp)[]
Required: []
External packages.
Type: string
Required: tsconfig.json
A custom tsconfig path to read paths
option.
Type: "cjs" | "esm"
\
Provide bundle format explicitly to skip the default format inference.
Type: BuildOptions
Required: false
esbuild options.
MIT License © 2023-Present Condor Hero