The extension manifest is defined in src/manifest.js
and used by @samrum/vite-plugin-web-extension
in the vite config.
Background, content scripts, options, and popup entry points exist in the src/entries
directory.
Content scripts are rendered by src/entries/contentScript/renderContent.js
which renders content within a ShadowRoot
and handles style injection for HMR and build modes.
Otherwise, the project functions just like a regular Vite project.
HMR during development in Manifest V3 requires Chromium version >= 110.0.5480.0.
Refer to @samrum/vite-plugin-web-extension for more usage notes.
See Vite Configuration Reference.
npm install
Hot Module Reloading is used to load changes inline without requiring extension rebuilds and extension/page reloads Currently only works in Chromium based browsers.
npm run dev
Rebuilds extension on file changes. Requires a reload of the extension (and page reload if using content scripts)
npm run watch
Minifies and optimizes extension build
npm run build
Loads the contents of the dist directory into the specified browser
npm run serve:chrome
npm run serve:firefox