JSPM

  • Created
  • Published
  • Downloads 2260033
  • Score
    100M100P100Q212253F
  • License MIT

Package Exports

  • unenv
  • unenv/_internal/types
  • unenv/_internal/utils
  • unenv/mock/empty
  • unenv/mock/noop
  • unenv/mock/proxy
  • unenv/mock/proxy-cjs
  • unenv/node/assert
  • unenv/node/assert/strict
  • unenv/node/async_hooks
  • unenv/node/buffer
  • unenv/node/child_process
  • unenv/node/cluster
  • unenv/node/console
  • unenv/node/constants
  • unenv/node/crypto
  • unenv/node/dgram
  • unenv/node/diagnostics_channel
  • unenv/node/dns
  • unenv/node/dns/promises
  • unenv/node/domain
  • unenv/node/events
  • unenv/node/fs
  • unenv/node/fs/promises
  • unenv/node/http
  • unenv/node/http2
  • unenv/node/https
  • unenv/node/inspector
  • unenv/node/inspector/promises
  • unenv/node/internal/async_hooks/async-hook
  • unenv/node/internal/async_hooks/async-local-storage
  • unenv/node/internal/async_hooks/async-resource
  • unenv/node/internal/buffer/base64
  • unenv/node/internal/buffer/buffer
  • unenv/node/internal/buffer/file
  • unenv/node/internal/buffer/ieee754
  • unenv/node/internal/crypto/constants
  • unenv/node/internal/crypto/node
  • unenv/node/internal/crypto/web
  • unenv/node/internal/dgram/socket
  • unenv/node/internal/diagnostics_channel/channel
  • unenv/node/internal/diagnostics_channel/tracing-channel
  • unenv/node/internal/dns/constants
  • unenv/node/internal/domain/domain
  • unenv/node/internal/events/events
  • unenv/node/internal/fs/classes
  • unenv/node/internal/fs/constants
  • unenv/node/internal/fs/fs
  • unenv/node/internal/fs/promises
  • unenv/node/internal/http/agent
  • unenv/node/internal/http/constants
  • unenv/node/internal/http/request
  • unenv/node/internal/http/response
  • unenv/node/internal/http2/constants
  • unenv/node/internal/net/server
  • unenv/node/internal/net/socket
  • unenv/node/internal/os/constants
  • unenv/node/internal/perf_hooks/constants
  • unenv/node/internal/perf_hooks/histogram
  • unenv/node/internal/perf_hooks/performance
  • unenv/node/internal/process/env
  • unenv/node/internal/process/hrtime
  • unenv/node/internal/process/nexttick
  • unenv/node/internal/process/node-version
  • unenv/node/internal/process/process
  • unenv/node/internal/punycode/punycode
  • unenv/node/internal/querystring/querystring
  • unenv/node/internal/readline/interface
  • unenv/node/internal/readline/promises/interface
  • unenv/node/internal/readline/promises/readline
  • unenv/node/internal/stream/duplex
  • unenv/node/internal/stream/readable
  • unenv/node/internal/stream/transform
  • unenv/node/internal/stream/writable
  • unenv/node/internal/timers/immediate
  • unenv/node/internal/timers/scheduler
  • unenv/node/internal/timers/set-immediate
  • unenv/node/internal/timers/set-interval
  • unenv/node/internal/timers/set-timeout
  • unenv/node/internal/timers/timeout
  • unenv/node/internal/tls/constants
  • unenv/node/internal/tls/secure-context
  • unenv/node/internal/tls/server
  • unenv/node/internal/tls/tls-socket
  • unenv/node/internal/trace_events/tracing
  • unenv/node/internal/tty/read-stream
  • unenv/node/internal/tty/write-stream
  • unenv/node/internal/url/constants
  • unenv/node/internal/url/errors
  • unenv/node/internal/url/url
  • unenv/node/internal/url/util
  • unenv/node/internal/util/inherits
  • unenv/node/internal/util/legacy-types
  • unenv/node/internal/util/log
  • unenv/node/internal/util/mime
  • unenv/node/internal/util/promisify
  • unenv/node/internal/util/types
  • unenv/node/internal/v8/deserializer
  • unenv/node/internal/v8/profiler
  • unenv/node/internal/v8/serializer
  • unenv/node/internal/vm/constants
  • unenv/node/internal/vm/script
  • unenv/node/internal/worker_threads/broadcast-channel
  • unenv/node/internal/worker_threads/message-channel
  • unenv/node/internal/worker_threads/message-port
  • unenv/node/internal/worker_threads/worker
  • unenv/node/internal/zlib/codes
  • unenv/node/internal/zlib/constants
  • unenv/node/internal/zlib/formats/_shared
  • unenv/node/internal/zlib/formats/brotli
  • unenv/node/internal/zlib/formats/deflate
  • unenv/node/internal/zlib/formats/gzip
  • unenv/node/internal/zlib/formats/zip
  • unenv/node/module
  • unenv/node/net
  • unenv/node/os
  • unenv/node/path
  • unenv/node/path/posix
  • unenv/node/path/win32
  • unenv/node/perf_hooks
  • unenv/node/process
  • unenv/node/punycode
  • unenv/node/querystring
  • unenv/node/readline
  • unenv/node/readline/promises
  • unenv/node/repl
  • unenv/node/sqlite
  • unenv/node/stream
  • unenv/node/stream/consumers
  • unenv/node/stream/promises
  • unenv/node/stream/web
  • unenv/node/string_decoder
  • unenv/node/sys
  • unenv/node/timers
  • unenv/node/timers/promises
  • unenv/node/tls
  • unenv/node/trace_events
  • unenv/node/tty
  • unenv/node/url
  • unenv/node/util
  • unenv/node/util/types
  • unenv/node/v8
  • unenv/node/vm
  • unenv/node/wasi
  • unenv/node/worker_threads
  • unenv/node/zlib
  • unenv/npm/cross-fetch
  • unenv/npm/debug
  • unenv/npm/fsevents
  • unenv/npm/inherits
  • unenv/npm/node-fetch
  • unenv/npm/whatwg-url
  • unenv/package.json
  • unenv/polyfill/buffer
  • unenv/polyfill/globalthis
  • unenv/polyfill/globalthis-global
  • unenv/polyfill/performance
  • unenv/polyfill/process
  • unenv/polyfill/timers
  • unenv/web/performance/_polyfills
  • unenv/web/performance/index

Readme

🕊️ unenv

npm version npm downloads install size

[!NOTE] You are on the development (v2) branch. Check out v1 for the current release.

unenv provides polyfills to add Node.js compatibility for any JavaScript runtime, including browsers and edge workers.

🌟 Used by

Usage

The defineEnv utility can generate a target environment configuration.

import { defineEnv } from "unenv";

const { env } = defineEnv({
  nodeCompat: true,
  npmShims: true,
  resolve: true,
  overrides: {},
  presets: [],
});

const { alias, inject, external, polyfill } = env;

You can then integrate the env object with your build tool:

Bundler alias inject external
rollup @rollup/plugin-alias @rollup/plugin-inject external
rolldown resolve.alias inject external
vite resolve.alias @rollup/plugin-inject ssr.external
esbuild alias inject external
rspack resolve.alias - externals
webpack resolve.alias webpack-plugin-inject externals

Options

  • nodeCompat: (default: true)
    • Add alias entries for Node.js builtins as <id> and node:<id>.
    • Add inject entries for Node.js globals global, Buffer, and process.
  • npmShims: (default: false)
    • Add alias entries to replace npm packages like node-fetch with lighter shims.
  • resolve: (default: false) Resolve config values to absolute paths.
  • overrides: Additional overrides for env config.
  • presets: Additional presets (for example @cloudflare/unenv-preset).

unenv/ polyfills

You can also directly import unenv/ polyfills:

Polyfills Description Source
unenv/mock/* Mocking utils src/runtime/mock
unenv/node/* APIs compatible with Node.js API src/runtime/node
unenv/npm/* NPM package shims src/runtime/npm
unenv/polyfill/* Global polyfills src/runtime/polyfill
unenv/web/* Subset of Web APIs src/runtime/web

Node.js compatibility

unenv replaces Node.js built-in modules compatible with any runtime (view source).

Manual mocking

// Magic proxy to replace any unknown API
import MockProxy from "unenv/mock/proxy";

// You can also create named mocks
const lib = MockProxy.__createMock__("lib", {
  /* overrides */
});

(view source)

Nightly release channel

You can use the nightly release channel to try the latest changes in the main branch via unenv-nightly.

If directly using unenv in your project:

{
  "devDependencies": {
    "unenv": "npm:unenv-nightly"
  }
}

If using unenv via another tool (Nuxt or Nitro) in your project:

{
  "resolutions": {
    "unenv": "npm:unenv-nightly"
  }
}

License

Published under the MIT license. Made by @pi0 and community 💛


🤖 auto updated with automd