{"id":22881292,"url":"https://github.com/frogo/chrome-extension","last_synced_at":"2025-03-31T15:50:21.529Z","repository":{"id":238405695,"uuid":"796483150","full_name":"frogo/chrome-extension","owner":"frogo","description":null,"archived":false,"fork":false,"pushed_at":"2024-05-06T03:06:34.000Z","size":65,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-06T21:31:09.087Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/frogo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"mubaidr","patreon":"mubaidr","open_collective":"mubaidr","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":"mubaidr","otechie":null,"custom":null}},"created_at":"2024-05-06T03:06:31.000Z","updated_at":"2024-05-06T03:06:37.000Z","dependencies_parsed_at":"2024-05-06T04:24:52.635Z","dependency_job_id":"263afc7d-2154-4ac8-9328-5a9cda47b276","html_url":"https://github.com/frogo/chrome-extension","commit_stats":null,"previous_names":["frogo/chrome-extension"],"tags_count":0,"template":false,"template_full_name":"mubaidr/vite-vue3-browser-extension-v3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frogo%2Fchrome-extension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frogo%2Fchrome-extension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frogo%2Fchrome-extension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frogo%2Fchrome-extension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frogo","download_url":"https://codeload.github.com/frogo/chrome-extension/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246491538,"owners_count":20786198,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-13T17:32:40.612Z","updated_at":"2025-03-31T15:50:21.504Z","avatar_url":"https://github.com/frogo.png","language":"TypeScript","funding_links":["https://github.com/sponsors/mubaidr","https://patreon.com/mubaidr","https://opencollective.com/mubaidr","https://issuehunt.io/r/mubaidr"],"categories":[],"sub_categories":[],"readme":"# vite-vue3-browser-extension-v3\n\n[![build](https://github.com/mubaidr/vite-vue3-chrome-extension-v3/actions/workflows/build.yml/badge.svg)](https://github.com/mubaidr/vite-vue3-chrome-extension-v3/actions/workflows/build.yml) [![release](https://github.com/mubaidr/vite-vue3-chrome-extension-v3/actions/workflows/release.yml/badge.svg)](https://github.com/mubaidr/vite-vue3-chrome-extension-v3/actions/workflows/release.yml)\n\nA [Vite](https://vitejs.dev/) powered WebExtension ([Chrome](https://developer.chrome.com/docs/extensions/reference/), [FireFox](https://addons.mozilla.org/en-US/developers/), etc.) starter template based on `manifest 3`, `vue3` and `vite`.\n\n**Please check: [vite-chrome-extension](https://github.com/mubaidr/vite-chrome-extension) for a more simpler template**\n\n## Features\n\n- Vue 3 - Composition API, `Script setup` and more!\n- Vue 3 app in Content Script too (template added)\n- Vue devtools support\n- HMR for extension pages and content scripts\n- Sample `onInstall` \u0026 `onUpdate` pages\n- [`Tailwind`](https://tailwindcss.com/) css And [`daisyUI`](https://daisyui.com/)\n- Tailwindcss plugins for Typography, forms, prettier and daisy ui\n- Vue Router setup incuding `unplugin-vue-router` for automatic route registration\n- vscode recommended settings and extensions for chrome plugin development\n- Effortless communications - powered by [`webext-bridge`](https://github.com/zikaari/webext-bridge)\n- [Components auto importing](./src/components)\n- [Icons](./src/components) - Access to icons from any iconset directly\n  - By default [Material Design Icons](https://materialdesignicons.com/cdn/1.6.50-dev/) set is enabled\n- [TypeScript](https://www.typescriptlang.org/) - type safe\n- `Eslint` \u0026 `Prettier` configured for `vue`, `javascript`, `TypeScript`\n- [CRXJS Vite Plugin](https://crxjs.dev/vite-plugin) Build a Chrome Extension with Vite\n- Github build and release actions\n\n_Please create an issue if you feel some feature is missing or could be improved._\n\n## Pre-packed\n\n### Vite Plugins\n\n- [`unplugin-vue-router`](https://github.com/posva/unplugin-vue-router) - File system based route generator for Vite\n- [`unplugin-auto-import`](https://github.com/antfu/unplugin-auto-import) - Directly use `browser` and Vue Composition API without importing\n- [`unplugin-vue-components`](https://github.com/antfu/vite-plugin-components) - components auto import\n- [`unplugin-icons`](https://github.com/antfu/unplugin-icons) - icons as components\n  - [Material Design Icons](https://icon-sets.iconify.design/mdi/) - Material Design Icons\n\n### Vue Plugins\n\n- [Pinia](https://pinia.vuejs.org/) - Intuitive, type safe, light and flexible Store for Vue\n- [VueUse](https://github.com/antfu/vueuse) - collection of useful composition APIs\n\n### Plugins\n\n- [Marked](https://github.com/markedjs/marked) - A markdown parser and compiler. Used for CHANGELOG.md to show in Update page\n\n### UI Frameworks\n\n- [tailwindcss](https://tailwindcss.com) - A utility-first CSS framework\n- [daisyUI](https://daisyui.com/) - The most popular component library for Tailwind CSS\n\nTailwind css `forms` and `typography` plugins are enabled for default styling of form controls.\n\n### WebExtension Libraries\n\n- [`webext-bridge`](https://github.com/zikaari/webext-bridge) - effortlessly communication between contexts\n\n### Coding Style\n\n- Use Composition API with [`\u003cscript setup\u003e` SFC syntax](https://github.com/vuejs/rfcs/pull/227)\n- Use Composition API with [`setup` SFC syntax](https://pinia.vuejs.org/cookbook/composables.html#Setup-Stores) in Pinia stores\n\n## Use the Template\n\n### GitHub Template\n\n[Create a repo from this template on GitHub](https://github.com/mubaidr/vite-vue3-chrome-extension-v3/generate).\n\n### Clone to local\n\nIf you prefer to do it manually with the cleaner git history\n\n\u003e If you don't have pnpm installed, run: npm install -g pnpm\n\n```bash\npnpx degit mubaidr/vite-vue3-chrome-extension-v3 my-webext\ncd my-webext\npnpm i\n```\n\n## Usage\n\n### Project Structure\n\n- `src` - main source.\n  - `content-script` - scripts and components to be injected as `content_script`\n    - `iframe` content script iframe vue3 app which will be injected into page\n  - `background` - scripts for background.\n  - `popup` - popup vuejs application root\n    - `pages` - popup pages\n  - `options` - options vuejs application root\n    - `pages` - options pages\n  - `setup` - Page for Install and Update chrome extension events\n    - `pages` - pages for install and update events\n  - `offscreen` - Chrome extension offscreen pages, can be used for audio, screen recording\n  - `pages` - application pages, common to all views (About, Contact, Authentication etc)\n  - `components` - auto-imported Vue components that are shared in popup and options page.\n  - `assets` - assets used in Vue components\n- `dist` - built files, also serve stub entry for Vite on development.\n\n### Extra info\n\nIn [src/background/index.ts](./src/background/index.ts) you can find an example of chrome.runtime.onInstalled.addListener.\n\nWe add `?type` to the url to tell if it's update or install event. Then in [src/setup/pages/index.ts](./src/setup/pages/index.ts) we check for the `type` and show the appropriate page.\n\n### Development\n\n```bash\npnpm dev\n```\n\nThen **load extension in browser with the `dist/` folder**.\n\n### Build\n\nTo build the extension, run\n\n```bash\npnpm build\n```\n\nAnd then pack files under `dist`, you can upload `dist.crx` or `dist.xpi` to appropriate extension store.\n\n## Contributors\n\n\u003c!-- readme: collaborators,contributors -start --\u003e\n\u003ctable\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://github.com/mubaidr\"\u003e\n            \u003cimg src=\"https://avatars.githubusercontent.com/u/2222702?v=4\" width=\"100;\" alt=\"mubaidr\"/\u003e\n            \u003cbr /\u003e\n            \u003csub\u003e\u003cb\u003eMuhammad Ubaid Raza\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://github.com/ultimateshadsform\"\u003e\n            \u003cimg src=\"https://avatars.githubusercontent.com/u/151234273?v=4\" width=\"100;\" alt=\"ultimateshadsform\"/\u003e\n            \u003cbr /\u003e\n            \u003csub\u003e\u003cb\u003eAlexander\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://github.com/baramofme\"\u003e\n            \u003cimg src=\"https://avatars.githubusercontent.com/u/44565599?v=4\" width=\"100;\" alt=\"baramofme\"/\u003e\n            \u003cbr /\u003e\n            \u003csub\u003e\u003cb\u003eJihoon Yi\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://github.com/justorez\"\u003e\n            \u003cimg src=\"https://avatars.githubusercontent.com/u/17308328?v=4\" width=\"100;\" alt=\"justorez\"/\u003e\n            \u003cbr /\u003e\n            \u003csub\u003e\u003cb\u003eNull\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\u003c!-- readme: collaborators,contributors -end --\u003e\n\n## Credits\n\nThis template is heavenly inspired by: https://github.com/antfu/vitesse-webext\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrogo%2Fchrome-extension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrogo%2Fchrome-extension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrogo%2Fchrome-extension/lists"}