FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

unjs/unenv: ๐Ÿ•Š๏ธ Node.js compatibility for any JavaScript runtime, including browsers and edge workers. ยท GitHub

/ unenv Public

Latest commit

ย 

History

716 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ•Š๏ธ unenv

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:

Details
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).

Details

Manual mocking

Details
// 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.

Details

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

About

๐Ÿ•Š๏ธ Node.js compatibility for any JavaScript runtime, including browsers and edge workers.

Resources

Stars

766 stars

Watchers

7 watching

Forks

Releases

Contributors

Languages


Back | FazBrowse Home | New Git URL