/chrome-ext-mv3-starter

Primary LanguageTypeScriptMIT LicenseMIT

Modernized Chrome Extension Vite Starter

A Vite Powered Modernized Chrome Extension Manifest V3 (Chrome) Starter Template.

Page Type Light Mode Dark Mode
Popup Page
Options Page

Features

  • ⚑️ Instant HMR - use Vite on dev (no more refresh!)
  • πŸ₯ Vue 3 - Composition API, <script setup> syntax and more!
  • πŸ’¬ Effortless communications - powered by webext-bridge and VueUse storage
  • πŸƒ Windi CSS - on-demand CSS utilities
  • 🦾 TypeScript - type safe
  • πŸ“¦ Components auto importing
  • 🌟 Icons - Access to icons from any iconset directly
  • 🌍 I18N ready
  • πŸŒ› Dark Mode - support toggle dark mode
  • πŸ“ƒ Dynamic manifest.json with full type support

Pre-packed

WebExtension Libraries

Vite Plugins

Vue Plugins

UI Frameworks

  • Windi CSS - next generation utility-first CSS framework

Icons

Coding Style

Dev tools

  • TypeScript
  • pnpm - fast, disk space efficient package manager
  • tsup - Zero config TypeScript bundler powered by esbuild
  • esno - TypeScript / ESNext node runtime powered by esbuild
  • npm-run-all - Run multiple npm-scripts in parallel or sequential

Use the Template

GitHub Template

Create a repo from this template on GitHub.

Clone to local

If you prefer to do it manually with the cleaner git history

If you don't have pnpm installed, run: npm install -g pnpm

npx degit xiaoluoboding/chrome-ext-mv3-starter my-extension
cd my-extension
pnpm i

Usage

Folders

  • src - background scripts and content scripts & frontend for the extension (popup and options).
    • manifest.ts - manifest for the extension.
  • extension - extension package root, also holds assets.
  • scripts - development helper scripts.

Development

pnpm dev

Then load extension in browser with the extension/ folder,

Build

To build the extension, run

pnpm build

And then pack files under extension.

Credits

This is a template derive from antfu/vitesse-webext

Who is using this template?

License

MIT - @xiaoluoboding