Back to Explore

unjs/exsolve

GitHub
1 watchersOpen source

Last release: 6 months ago

exsolve is a JavaScript library that provides Node.js-style module resolution utilities similar to `import.meta.resolve`. It helps developers resolve module specifiers to a file URL or absolute file path, supports features like import maps and export maps, and offers options like custom conditions, extensions, suffixes, and a global resolve cache.

Project status

  • Actively maintained: Recent upstream push is dated 2026-06-07, and there have been multiple updates in 2025 (v1.0.6 to v1.0.8), indicating ongoing development.
  • Update cadence: v1.0.6 (2025-06-18) to v1.0.7 (2025-06-20) was very quick, then v1.0.7 to v1.0.8 (2025-11-10) shows a longer gap of several months.

AI summary generated Today

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v1.0.8

    6 months ago

    v1.0.8 primarily changes resolution behavior in "try" mode, making it always swallow resolution errors. It also migrates the build pipeline to obuild/rolldown and simplifies the package.json exports map.

    Breaking
  • v1.0.7

    11 months ago

    v1.0.7 is a small patch release focused on fixing module URL resolution when the specifier is `.` and the configured suffix is empty. The code change adjusts how the base name is constructed before attempting resolution, and new tests were added to cover the reported case.

  • v1.0.6

    11 months ago

    v1.0.6 primarily adds support for URL polyfills so resolution continues to work when inputs are not native `URL` instances. The implementation changes runtime URL detection in the resolver internals and includes a new test for URL polyfill scenarios, along with dev dependency and tooling updates.

  • v1.0.5

    4/18/2025

    v1.0.5 primarily fixes module resolution for absolute paths that are symlinks, ensuring the resolver returns URLs pointing at the resolved real target paths. It also includes minor documentation formatting changes. Development tooling and dependency versions were bumped as part of the release.

  • v1.0.4

    3/8/2025

    v1.0.4 contains a small internal change to how Node.js builtin module specifiers are detected during resolution. The release notes describe switching to a bundled builtin list implementation, and the code diff confirms this replacement.

  • v1.0.3

    3/8/2025

    v1.0.3 introduces a fix related to resolving Node.js builtin module specifiers. Instead of relying on Node's runtime-provided builtin module list, it now uses an internal hardcoded list of builtin names and uses it during resolution to map bare names to node:<name>.

  • v1.0.2

    3/5/2025

    v1.0.2 ships a small fix to module resolution for Node and extended builtin module identifiers. The implementation change ensures only standard Node builtin module names get prefixed with node:, while entries that already contain a colon (for example bun:sqlite) are preserved as-is.

  • v1.0.1

    2/27/2025

    v1.0.1 is a small patch release focused on adjusting resolveModulePath behavior when the caller passes { try: true }. The release notes document that resolveModulePath will not throw when the resolved value is not a file:// URL.

  • v1.0.0

    2/26/2025

    The release notes only state a version bump to v1.0.0, with no feature, fix, or behavioral details. The provided code diff shows changes limited to repository metadata (CHANGELOG.md and package.json), with no application logic changes shown.

    Breaking
  • v0.4.4

    2/26/2025

    v0.4.4 makes a Windows-specific change to how resolveModulePath returns filesystem paths. It now normalizes the output by converting backslashes to forward slashes and normalizing the drive letter casing.