# environment

> Check which JavaScript environment your code is running in at runtime: browser, Node.js, Bun, etc

Latest version **1.1.0** (published 2024-05-14) · MIT license · 0 weekly downloads

## Install

```sh
npm install environment
pnpm add environment
yarn add environment
bun add environment
```

## Health

**Score 30/100 (F)** — status: abandoned.

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

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.0 |
| Published | 2024-05-14 |
| First published | 2012-06-27 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM |
| Node | >=18 |
| Dependencies | 0 |
| Unpacked size | 8.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 167 |
| Author | Sindre Sorhus |
| Maintainers | sindresorhus |
| Keywords | runtime, environment, env, execution, engine, platform, context, js, javascript, is, check, checking, detect, detection, browser, node, bun, deno, electron, jsdom, webworker, worker, serviceworker, macos, ios, iphone, ipad, windows, linux, android, os, operating, system |

## Links

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

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 1.1.0 (latest) — 2024-05-14
- 1.0.0 — 2024-04-28
- 0.0.2 — 2012-06-28
- 0.0.1 — 2012-06-27

## README

# environment

> Check which JavaScript environment your code is running in at runtime

## Install

```sh
npm install environment
```

## Usage

```js
import {isBrowser, isNode} from 'environment';

if (isBrowser) {
	console.log('Running in a browser!');
}

if (isNode) {
	console.log('Running in Node.js!');
}
```

> [!NOTE]
> Runtime checks should be used sparingly. Prefer [conditional package exports](https://nodejs.org/api/packages.html#conditional-exports) and [imports](https://nodejs.org/api/packages.html#subpath-imports) whenever possible.

## API

### `isBrowser`

Check if the code is running in a web browser environment.

### `isNode`

Check if the code is running in a [Node.js](https://nodejs.org) environment.

### `isBun`

Check if the code is running in a [Bun](https://bun.sh) environment.

### `isDeno`

Check if the code is running in a [Deno](https://deno.com) environment.

### `isElectron`

Check if the code is running in an [Electron](https://www.electronjs.org) environment.

### `isJsDom`

Check if the code is running in a [jsdom](https://github.com/jsdom/jsdom) environment.

### `isWebWorker`

Check if the code is running in a [Web Worker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API#worker_global_contexts_and_functions) environment, which could be either a dedicated worker, shared worker, or service worker.

### `isDedicatedWorker`

Check if the code is running in a [Dedicated Worker](https://developer.mozilla.org/en-US/docs/Web/API/DedicatedWorkerGlobalScope) environment.

### `isSharedWorker`

Check if the code is running in a [Shared Worker](https://developer.mozilla.org/en-US/docs/Web/API/SharedWorkerGlobalScope) environment.

### `isServiceWorker`

Check if the code is running in a [Service Worker](https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerGlobalScope) environment.

### `isMacOs`

Check if the code is running on macOS.

### `isWindows`

Check if the code is running on Windows.

### `isLinux`

Check if the code is running on Linux.

### `isIos`

Check if the code is running on iOS.

### `isAndroid`

Check if the code is running on Android.

## Related

- [is-in-ci](https://github.com/sindresorhus/is-in-ci) - Check if the process is running in a CI environment
- [is64bit](https://github.com/sindresorhus/is64bit) - Check if the operating system CPU architecture is 64-bit or 32-bit
- [is](https://github.com/sindresorhus/is) - Type check values

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