← 全部工具

extension

热度 65 更新于 开发与构建

The cross-browser extension framework. Build Chrome, Edge, Firefox, and Safari extensions with no build configuration.

npmauto-collected

安装

npm
npm install -g extension

通过 npm 安装。

[npm-version-image]: https://img.shields.io/npm/v/extension.svg?color=0971fe [npm-version-url]: https://www.npmjs.com/package/extension [npm-downloads-image]: https://img.shields.io/npm/dm/extension.svg?color=0971fe [npm-downloads-url]: https://www.npmjs.com/package/extension [action-image]: https://github.com/extension-js/extension.js/actions/workflows/ci.yml/badge.svg?branch=main&color=0971fe [action-url]: https://github.com/extension-js/extension.js/actions [discord-image]: https://img.shields.io/discord/1253608412890271755?label=Discord&logo=discord&style=flat&color=0971fe [discord-url]: https://discord.gg/v9h2RgeTSN [bestpractices-image]: https://img.shields.io/cii/level/14662?label=Best%20Practices&style=flat&color=0971fe [bestpractices-url]: https://www.bestpractices.dev/projects/14662

Extension.js [![Version][npm-version-image]][npm-version-url] [![Downloads][npm-downloads-image]][npm-downloads-url] [![CI][action-image]][action-url] [![Discord][discord-image]][discord-url] [![Best Practices][bestpractices-image]][bestpractices-url]

The cross-browser extension framework. Build for Chrome, Edge, Firefox, and Safari with no build config required.

<img alt="Logo" align="right" src="https://media.extension.land/track/extension-js.png" width="20.25%" /

npx extension@latest create my-extension
cd my-extension
npm run dev

Works with npm, pnpm, yarn, bun, and deno.

The CLI itself runs on Node.js 22.12+, Deno 2.5+, and Bun 1.2+.

Documentation · Templates · YouTube · Showcase · Blog

Why Extension.js

Browser extensions ship with the worst dev experience in modern web. Manifest V3 fragmentation, browser-specific quirks, no hot reload for content scripts, and a separate build pipeline for every target. Extension.js fixes that.

  • Hot Module Replacement for popup, options, devtools and other extension pages, including React, Vue, Svelte, and Preact components, with targeted reloads for content scripts and the service worker so one save never reloads the whole extension
  • Manifest V3 by default, with automatic adapters for Chrome, Edge, Firefox, and Safari targets
  • One CLI for Chrome, Edge, Firefox, and any Chromium or Gecko binary
  • Zero config, no webpack, no rollup, no plugins to maintain
  • First-class TypeScript, React, Vue, Svelte, and Preact support
  • Production builds with extension build --zip, ready for the Chrome Web Store and Firefox Add-ons
  • Drop-in for existing extensions with one devDependency

Watch it work

Or skip the install and try a live template in your browser.

How is this different

If you have used Plasmo, WXT, or CRXJS, here is what Extension.js does that the others do not:

| Capability | Extension.js | | :--------- | :----------- | | Run any GitHub sample directly | extension dev https://github.com/.../sample | | Managed browser binaries | extension install firefox downloads an isolated build | | Targeted content-script reload across browsers | Built in, only the changed entries re-inject, no plugin glue | | Production zip for the stores | extension build --zip | | Framework agnostic | Vanilla, TS, React, Vue, Svelte, Preact, no lock-in | | Custom Chromium and Gecko binaries | --chromium-binary, --gecko-binary |

Extension.js is sponsored by extension.dev, the platform that hosts the build, share and store submission side of shipping an extension. To hand someone an unpublished build behind a link, with no zip and no install on their side, see Share an unpublished build for review.