# import-fresh

> Import a module while bypassing the cache

Latest version **4.0.0** (published 2026-02-25) · MIT license · 0 weekly downloads

## Install

```sh
npm install import-fresh
pnpm add import-fresh
yarn add import-fresh
bun add import-fresh
```

## Health

**Score 60/100 (C)** — status: stable.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 4.0.0 |
| Published | 2026-02-25 |
| First published | 2017-05-21 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM |
| Node | >=22.15 |
| Dependencies | 0 |
| Unpacked size | 30.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 284 |
| Author | Sindre Sorhus |
| Maintainers | sindresorhus |
| Keywords | import, require, cache, uncache, uncached, module, fresh, bypass |

## Links

- npm: https://www.npmjs.com/package/import-fresh
- Repository: https://github.com/sindresorhus/import-fresh
- Homepage: https://github.com/sindresorhus/import-fresh#readme
- Issues: https://github.com/sindresorhus/import-fresh/issues
- Funding: https://github.com/sponsors/sindresorhus
- npm.io page: https://npm.io/package/import-fresh

## Alternatives

- [memory-cache](https://npm.io/package/memory-cache.md) — 795.0K weekly downloads
- [@httptoolkit/proxy-agent](https://npm.io/package/@httptoolkit/proxy-agent.md) — 11.2K weekly downloads
- [express-cache-controller](https://npm.io/package/express-cache-controller.md) — 5.3K weekly downloads
- [http-cache-middleware](https://npm.io/package/http-cache-middleware.md) — 4.5K weekly downloads
- [cache2](https://npm.io/package/cache2.md) — 1.5K weekly downloads

## Recent versions

- 4.0.0 (latest) — 2026-02-25
- 3.3.1 — 2025-02-02
- 3.3.0 — 2020-12-20
- 3.2.2 — 2020-11-01
- 3.2.1 — 2019-11-13
- 3.2.0 — 2019-11-13
- 3.1.0 — 2019-06-30
- 3.0.0 — 2018-12-25
- 2.0.0 — 2017-05-21

## README

# import-fresh

> Import a module while bypassing the cache

Useful for testing purposes when you need to freshly import a module.

## Requirements

- Node.js 22.15 or later (uses module loader hooks)

## Install

```sh
npm install import-fresh
```

## Usage

```js
// foo.js
let count = 0;
export default function increment() {
	count += 1;
	return count;
}
```

```js
import createImportFresh from 'import-fresh';

const importFresh = createImportFresh(import.meta.url);
const {default: increment} = await importFresh('./foo.js');

increment();
//=> 1

increment();
//=> 2

const {default: freshIncrement} = await importFresh('./foo.js');

freshIncrement();
//=> 1
```

## API

### createImportFresh(parentURL, options?)

Returns an `importFresh` function bound to `parentURL`.

`parentURL` must be a valid hierarchical URL string (for example `import.meta.url`) or a `URL` instance.

#### options

Type: `object`

The options are process-global. Every call in the same process must use the same `skipNodeModules` value.

##### skipNodeModules

Type: `boolean`\
Default: `false`

When `true`, modules inside `node_modules` directories are not cache-busted. This means that dependencies from npm packages will share state across fresh imports, which can be useful when you only want to freshly import your own code.

### importFresh(moduleSpecifier, options?)

The function returned by `createImportFresh`.

#### options

Type: `object`

##### importAttributes

Type: `object`

Import attributes passed to `import()`. Each value must be a string. JSON modules are automatically imported with `{type: 'json'}` when the specifier ends with `.json`.

## Caveat

Intended for development usage only. Repeated calls grow the ESM module cache because each call uses a unique cache-busting URL. This is an unavoidable “memory leak” and not considered a vulnerability.

## Related

- [clear-module](https://github.com/sindresorhus/clear-module) - Clear a module from the import cache
- [import-from](https://github.com/sindresorhus/import-from) - Import a module from a given path
- [import-cwd](https://github.com/sindresorhus/import-cwd) - Import a module from the current working directory
- [import-lazy](https://github.com/sindresorhus/import-lazy) - Import modules lazily

---
_Source: https://npm.io/package/import-fresh · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
