- Add
isolateEvents
option tocreateContentScripUi
(#313)
- Remove duplicate
entrypoints/
path (76e63e2) - Update unlisted pages/scripts description (c99a281)
- Update content script entrypoint docs (1360eb7)
- Add example for setting up custom panels/panes in devtools (#308)
- Use example tags to automate relevant example lists (#311)
- 冯不游
- storage: Support multiple
:
characters in storage keys (#303) - Ship
vite/client
types internally for proper resolution using PNPM (#304)
- Update
scripts/build.ts
show current build step in progress, not completed count (#306)
⚠️ Newwxt/storage
APIs (#300)
wxt/storage
no longer relies onunstorage
. Someunstorage
APIs, likeprefixStorage
, have been removed, while others, likesnapshot
, are methods on the newstorage
object. Most of the standard usage remains the same. See https://wxt.dev/guide/storage and https://wxt.dev/api/wxt/storage/ for more details (#300)
- Correct import in dev-only, noop background (#298)
- Disable Vite CJS warnings (#296)
- Correctly mock
webextension-polyfill
for Vitest (#294)
- Support PNPM without hoisting dependencies (#291)
- Upgrade templates to
wxt@^0.12.0
(#285)
⚠️ Add support for "main world" content scripts (#284)
- Convert WXT CLI to an ESM binary (#279)
defineContentScript
and defineBackground
are now exported from wxt/sandbox
instead of wxt/client
. (#284)
- If you use auto-imports, no changes are required.
- If you have disabled auto-imports, you'll need to manually update your import statements:
- import { defineBackground, defineContentScript } from 'wxt/client'; + import { defineBackground, defineContentScript } from 'wxt/sandbox';
- Discover
.js
,.jsx
, and.tsx
unlisted scripts correctly (#274) - Improve duplicate entrypoint name detection and catch the error before loading their config (#276)
- Improve content script UI docs (#268)
- Add util for detecting URL changes in content scripts (#264)
- Upgrade templates to
wxt@^0.11.0
(#263)
⚠️ Vite 5 support (#261)
- Adds tl;dv to homepage (#260)
- You will need to update any other Vite plugins to a version that supports Vite 5 (#261)
- Ítalo Brasil (@italodeverdade)
- Add config to customize
outDir
(#258)
- deps-dev: Bump prettier from 3.0.3 to 3.1.0 (#254)
- deps-dev: Bump @types/lodash.merge from 4.6.8 to 4.6.9 (#255)
- deps-dev: Bump tsx from 3.14.0 to 4.6.1 (#252)
- 冯不游
- auto-imports: Don't add imports to
node_module
dependencies (#247)
- Fix typo (317b1b6)
- Trigger docs upgrade via webhook (742b996)
- Use
normalize-path
instead ofvite.normalizePath
(#244) - Use
defu
for merging some config objects (#243)
- Apply
mode
option to build steps correctly (82ed821)
- Upgrade templates to v0.10 (#239)
- Remove WXT global to remove unused modules from production builds (3da3e07)
- List
bun
as an experimental option inwxt init
(#233) ⚠️ Allow plural directory and only png's for manifest icons (#237)- Add
wxt/storage
API (#234)
- Don't use
bun
to load entrypoint config (#232)
- Update main README links (207b750)
⚠️ No longer discover icons with extensions other than.png
. If you previously used.jpg
,.jpeg
,.bmp
, or.svg
, you'll need to convert your icons to.png
files or manually add them to the manifest inside yourwxt.config.ts
file (#237)
- Nenad Novaković (@dvlden)
- Experimental option to exclude
webextension-polyfill
(#231)
- Fix sync-release workflow (d1b5230)
- Add
alias
config for customizing path aliases (#216)
- Move
webextension-polyfill
from peer to regular dependencies (609ae2a) - Generate valid manifest for Firefox MV3 (#229)
- Add examples (c81dfff)
- Improve the "Used By" section on homepage (#220)
- Add UltraWideo to homepage (#193)
- Add StayFree to homepage (#221)
- Update feature comparison (67ffa44)
- Remove whitespace from genearted
.wxt
files (#211) - Upgrade templates to
wxt@^0.9.0
(#214) - Update Vite dependency range to
^4.0.0 || ^5.0.0-0
(f1e8084)
- Automatically sync GitHub releases with
CHANGELOG.md
on push (#218)
- Aaron Klinker (@aaronklinker-st)
⚠️ Removelib
from.wxt/tsconfig.json
(#209)
- Fix Svelte and React template READMEs (#207)
⚠️ Removed"WebWorker"
types from.wxt/tsconfig.json
(#209). These types are useful for MV3 projects using a service worker. To add them back to your project, add the following to your project's TSConfig:{ "extends": "./.wxt/tsconfig.json", + "compilerOptions": { + "lib": ["ESNext", "DOM", "WebWorker"] + } }
- yyyanghj (@yyyanghj)
createContentScriptIframe
utility (#206)
- deps-dev: Bump happy-dom from 12.4.0 to 12.10.3 (#194)
- deps-dev: Bump tsx from 3.12.8 to 3.14.0 (#198)
- Upgrade types (f3874da)
- deps-dev: Upgrade
lint-staged
to^15.0.2
(5f74a54) - deps-dev: Upgrade
execa
to^8.0.1
(#200) - deps-dev: Upgrade
typedoc
to^0.25.3
(#201) - deps-dev: Upgrade
vue
to3.3.7
(0b8d101) - deps-dev: Upgrade
vitepress
to1.0.0-rc.24
(5de18e5) - deps-dev: Update
@type/*
packages for demo (cd4d00e) - deps-dev: Update
sass
to1.69.5
(183bb02) - Improve prettier git hook (0f09cbe)
- Run E2E tests in parallel (#204)
- Separate validation into multiple jobs (#203)
- Inline WXT modules inside
WxtVitest
plugin (b75c553)
- Refactor project structure to export
initialize
,prepare
, andzip
functions (#182)
- Enable Vue SFC auto-imports in
vue
template (f8a0fb3)
- Improve
runner.binaries
documentation (d9e9b43) - Update auto-imports.md (#186)
- Add
test.server.deps.inline
to Vitest guide (19756c6)
- Nenad Novaković (@dvlden)
- Allow actions without a popup (#181)
- Add testing utils under
wxt/testing
(#178)
- firefox: Stop extending
AbortController
to fix crash in content scripts (#176)
- Improve output consistency (#175)
- Output
action.browser_style
correctly (6a93f20)
- Generate full API docs with typedoc (#174)
⚠️ UsedefineUnlistedScript
to define unlisted scripts (#167)
- Fix wrong links (#166)
⚠️ RenameBackgroundScriptDefintition
toBackgroundDefinition
(446f265)
⚠️ Unlisted scripts must nowexport default defineUnlistedScript(...)
(#167)⚠️ RenameBackgroundScriptDefintition
toBackgroundDefinition
(446f265)
- 渣渣120 @WOSHIZHAZHA120
- More consistent
version_name
generation between browsers (#163) - Ignore non-manifest fields when merging content script entries (#164)
- Add
browser_style
to popup options (#165)
- Support
react-refresh
when pre-rendering HTML pages in dev mode (#158)
- Add migration guides (b58fb02)
- Upgrade templates to v0.7 (#156)
- Support JS entrypoints (#155)
- Allow customizing entrypoint options per browser (#154)
- deps-dev: Bump @types/fs-extra from 11.0.1 to 11.0.2 (#144)
- deps-dev: Bump @faker-js/faker from 8.0.2 to 8.1.0 (#146)
- deps-dev: Bump vitest-mock-extended from 1.2.1 to 1.3.0 (#147)
- deps-dev: Bump vitest from 0.34.3 to 0.34.6 (#145)
- deps-dev: Bump typescript from 5.1 to 5.2 (#148)
createContentScriptUi
helper (#143)
- Add docs for
createContentScriptUi
(65fcfc0)
- release: V0.7.1-alpha1 (2d4983e)
- Content script
cssInjectionMode
(#141)
- Validate transformed manifest correctly (4b2012c)
⚠️ Output content script CSS tocontent-scripts/<name>.css
(#140)- Reorder typescript paths to give priority to
@
and~
over@@
and~~
(#142)
- Store user config metadata in memory (0591050)
⚠️ Content script CSS used to be output toassets/<name>.css
, but is nowcontent-scripts/<name>.css
to match the docs. (#140)
- Disable opening browser automatically during dev mode (#136)
- Don't crash when
<all_urls>
matches is used in dev mode (b48cee9) - Support loading
tsx
entrypoints (#134)
- Add tags for SEO and socials (96be879)
- Add more content to the homepage (5570793)
- Fix DX section sizing (41e1549)
- Add link to update extensions using WXT (24e69fe)
- Code coverage improvements (#131)
- content-scripts: Don't throw an error when including
include
orexclude
options on a content script (455e7f3) - Use
execaCommand
instead ofnode:child_process
(#130)
- client: Add
block
andaddEventListener
utils toContentScriptContext
(#128)
- Add
transformManifest
option (#124)
- Don't open browser during development when using WSL (#123)
- Load extension details from CWS (8e0a189)
- Export
ContentScriptContext
fromwxt/client
(1f448d1) ⚠️ Require a function forvite
configuration (#121)
⚠️ Thevite
config option must now be a function. If you were using an object before, change it fromvite: { ... }
tovite: () => ({ ... })
. (#121)
- Add
ContentScriptContext
util for stopping invalidated content scripts (#120)
- Automatically replace vite's
process.env.NODE_ENV
output in lib mode with the mode (92039b8)
- Recognize
background/index.ts
as an entrypoint (419fab8) - Don't warn about deep entrypoint subdirectories not being recognized (87e8df9)
- Allow function for vite config (4ec904e)
- Refactor how config is resolved (#118)
- Import client utils when getting entrypoint config (#117)
- Allow any string for target browser (b4de93d)
- types: Don't write to files if nothing changes (#107)
⚠️ Change defaultpublicDir
to<srcDir>/public
(5f15f9c)
- Add link to examples repo (46a5036)
- Fix typos (beafa6a)
- Make README pretty (b33b663)
- Add migration docs (e2350fe)
- Add vite customization docs (fe966b6)
- Move repo to wxt-dev org (ac7cbfc)
- deps-dev: Bump prettier from 3.0.1 to 3.0.3 (#111)
- deps-dev: Bump tsx from 3.12.7 to 3.12.8 (#109)
- deps-dev: Bump @types/node from 20.5.0 to 20.5.9 (#110)
- Add entrypoints debug log (dbd84c8)
⚠️ Change defaultpublicDir
to<srcDir>/public
(5f15f9c)
- cli: Add
wxt clean
command to delete generated files (#106)
- init: Don't show
cd .
when initializing the current directory (e086374)
- Add
--debug
flag for printing debug logs for all CLI commands (#75) - Replace
web-ext
withweb-ext-run
(#101) - Generate types for
browser.i18n.getMessage
(#103)
- Allow adding custom content scripts (b428a62)
- Don't overwrite
wxt.config.ts
content scripts, append entrypoints to it (5f5f1d9) ⚠️ Use relative path aliases inside.wxt/tsconfig.json
(#102)
- Add contribution guide (#76)
- Setup dependabot for upgrading dependencies (d66293c)
- Update social preview (e164bd5)
- Setup bug and feature issue templates (2bde917)
- Upgrade to prettier 3 (#77)
- deps-dev: Bump vitest from 0.32.4 to 0.34.1 (#81)
- deps-dev: Bump ora from 6.3.1 to 7.0.1 (#79)
- deps-dev: Bump @types/node from 20.4.5 to 20.5.0 (#78)
- deps-dev: Bump tsup from 7.1.0 to 7.2.0 (#80)
- deps-dev: Bump @vitest/coverage-v8 from 0.32.4 to 0.34.1 (#84)
- deps-dev: Bump vitepress from 1.0.0-beta.5 to 1.0.0-rc.4 (#85)
- deps-dev: Bump vitest-mock-extended from 1.1.4 to 1.2.0 (#87)
- deps-dev: Bump lint-staged from 13.3.0 to 14.0.0 (#89)
- Fix remote code E2E test (83e62a1)
- Fix failing demo build (b58a15e)
- deps-dev: Bump vitest-mock-extended from 1.2.0 to 1.2.1 (#97)
- deps-dev: Bump lint-staged from 14.0.0 to 14.0.1 (#100)
- deps-dev: Bump vitest from 0.34.1 to 0.34.3 (#99)
- Increase E2E test timeout because GitHub Actions Window runner is slow (2a0842b)
- deps-dev: Bump vitepress from 1.0.0-rc.4 to 1.0.0-rc.10 (#96)
- Fix test watcher restarting indefinetly (2c7922c)
- Remove explict icon config from templates (93bfee0)
- Use import aliases in Vue template (#104)
⚠️ Use relative path aliases inside.wxt/tsconfig.json
(#102)
- Discover icons from the public directory (#72)
- Don't allow auto-importing from subdirectories (d54d611)
- Document the
url:
import prefix for remote code (323045a) - Fix typos (97f0938)
- Fix capitalization (39467d1)
- Generate markdown for config reference (#74)
- Upgrade dependencies (798f02f)
- Upgrade vite (
v4.3
→v4.4
) (547c185) - Update templates to work with CSS entrypoints (7f15305)
- Improve file list output in CI (#73)
- Validate templates against
main
(#66) - List vite version when validating project templates (ef140dc)
- Validate templates using tarball to avoid version conflicts within the
wxt/node_modules
directory (edfa075)
- Add zip command to installation scripts (94a1097)
- Add output paths to entrypoint docs (3a336eb)
- Update installation docs (aea866c)
- Add publishing docs (4184b05)
- Add a section for extensions using WXT (709b61a)
- Add a comparison page to compare and contrast against Plasmo (38d4f9c)
- Update template projects to v0.3 (#56)
- Branding and logo (#60)
- Simplify binary setup (#62)
- Add Solid template (#63)
- Increate E2E test timeout to fix flakey test (dfe424f)
- BeanWei (@BeanWei)
⚠️ Add type safety tobrowser.runtime.getURL
(58a84ec)⚠️ Change defaultpublicDir
to<rootDir>/public
(19c0948)- Windows support (#50)
- Add
WebWorker
lib to generated tsconfig (2c70246)
- Update entrypoint directory links (0aebb67)
- Allow any string for the
__BROWSER__
global (6092235)
- Improve checks against
demo/
extension (9cc464f)
⚠️ Add type safety tobrowser.runtime.getURL
(58a84ec)⚠️ Change defaultpublicDir
to<rootDir>/public
(19c0948)
- Auto-import from subdirectories (547fee0)
- Include background script in dev mode if user doesn't define one (ca20a21)
- Don't crash when generating types in dev mode (d8c1903)
- Properly load entrypoints that reference
import.meta
(54b18cc)
- Update templates to [email protected] (9d00eb2)
- Validate project templates (9ac756f)
- Add
wxt zip
command (#47)
- Correctly lookup open port (#45)
- Read boolean maniest options from meta tags correctly (495c5c8)
- Some fields cannot be overridden from
config.manifest
(#46)
- Register content scripts correctly in dev mode (2fb5a54)
- Support all content script options (6f5bf89)
- Remove HMR log (90fa6bf)
⚠️ RenamedefineBackgroundScript
todefineBackground
(5b48ae9)- Recongize unnamed content scripts (
content.ts
andcontent/index.ts
) (3db5cec)
- Update templates (f28a29e)
- Add docs for each type of entrypoint (77cbfc1)
- Add inline JSDoc for public types (375a2a6)
⚠️ RenamedefineBackgroundScript
todefineBackground
(5b48ae9)
- Include
vite/client
types (371be99)
- Fix regression where manifest was not listed first in build summary (fa2b656)
- Fix config hook implementations for vite plugins (49965e7)
- Update CLI screenshot (0a26673)
- Update prettier ignore (68611ae)
- Add tsconfig path aliases (#32)
- Merge
manifest
option from both inline and user config (05ca998) - Cleanup build summary with sourcemaps (ac0b28e)
- Create documentation site (#31)
- Upgrade to pnpm 8 (0ce7c9d)
- Accept a function for
config.manifest
(ee49837)
- Add missing types for
webextension-polyfill
and themanifest
option (636aa48) - Only add imports to JS files (b29c3c6)
- Generate valid type for
EntrypointPath
when there are no entrypoints (6e7184d)
- Change
config.vite
toUserConfig
(ef6001e)
Initial release of WXT. Full support for production builds and initial toolkit for development:
- HMR support when HTML page dependencies change
- Reload extension when background changes
- Reload HTML pages when saving them directly
- Re-register and reload tabs when content scripts change
- Content scripts reloading (#25)
- Update feature list (0255028)
- Create github release (b7c078f)
- Reload extension when source code is changed (#17)
- Setup background script web socket/reload (#22)
- Reload HTML files individually (#23)
- Output chunks to a chunks directory (2dd7a99)
- Remove hash from content script css outputs (#20)
- Overwrite files with the same name when renaming entrypoints in dev mode (37986bf)
- Separate template builds to prevent sharing chunks (7f3a1e8)
- Show Vite warnings and errors (c51f0e0)
- Refactor build output type (#19)
- Refactor build outputs to support transpiled templates (a78aada)
- Rename
templates
tovirtual-modules
(#24) - Update cli screenshot (54eb118)
- Add logger to config (232ff7a)
- Export and bootstrap the
/client
package (5b07c95) - Resolve entrypoints based on filesystem (a63f061)
- Separate output directories for each browser/manifest version (f09ffbb)
- Build entrypoints and output
manfiest.json
(1e7c738) - Automatically add CSS files to content scripts (047ce04)
- Download and bundle remote URL imports (523c7df)
- Generate type declarations and config for project types and auto-imports (21debad)
- Good looking console output (e2cc995)
- Dev server working and a valid extension is built (505e419)
- Virtualized content script entrypoint (ca29537)
- Provide custom, typed globals defined by Vite (8c59a1c)
- Copy public directory to outputs (1a25f2b)
- Support browser and chrome styles for mv2 popups (7945c94)
- Support browser and chrome styles for mv2 popups (7abb577)
- Support more CLI flags for
build
anddev
(#9) - Add more supported browser types (f114c5b)
- Open browser when starting dev server (#11)
- Support
srcDir
config (739d19f) - Root path customization now works (4faa3b3)
- Print durations as ms/s based on total time (3e37de9)
- Don't print error twice when background crashes (407627c)
- Load package.json from root not cwd (3ca16ee)
- Only allow a single entrypoint with a given name (8eb4e86)
- Respect the mv2 popup type (0f37ceb)
- Respect background type and persistent manifest options (573ef80)
- Make content script array orders consistent (f380378)
- Firefox manifest warnings in dev mode (50bb845)
- Update README (785ea54)
- Update README (99ccadb)
- Update description (07a262e)
- Update README (58a0ef4)
- Update README (23ed6f7)
- Add initial release milestone link to README (b400e54)
- Fix typo in README (5590c9d)
- Refactor cli files into their own directory (e6c0d84)
- Simplify
BuildOutput
type (1f6c4a0) - Move
.exvite
directory intosrcDir
instead ofroot
(53fb805) - Refactor CLI commands (b8952b6)
- Improve build summary sorting (ec57e8c)
- Remove comments (e3e9c0d)
- Refactor internal config creation (7c634f4)
- Check virtual entrypoints feature in README (70208f4)
- Add E2E tests and convert to vitest workspace (5813302)
- Rename package to wxt (51a1072)
- Fix header log's timestamp (8ca5657)
- Fix demo global usage (1ecfedd)
- Refactor folder structure (9ab3953)
- Fix release workflow (2e94f2a)