Manuale di sviluppo
Questa sezione è per chi vuole leggere il codice sorgente, modificare le regole o aprire una PR. Se hai solo bisogno di installare l'estensione, la Guida all'uso è sufficiente.
Sezioni
- Panoramica dell'architettura — struttura delle directory del progetto, responsabilità dei moduli, flusso dei dati
- Formato dei file di regole — come sono organizzati i JSON in
public/rules/, gruppi annidati e ereditarietà dei defaults - Flusso di rilevamento — le fasi dal webRequest / iniezione nella pagina fino al rendering nel popup
- Contribuire alle regole — come aggiungere nuove tecnologie all'insieme delle regole integrate
- Build e rilascio — build locale, packaging, firma crx, workflow di pubblicazione
Stack tecnologico
Il progetto principale usa Vite 8 + Vue 3 + TypeScript + @crxjs/vite-plugin 3.x. Lo script in background è un service worker ESM Manifest V3, il gestore di pacchetti è bun.
Le regole si trovano in public/rules/, suddivise in più file JSON per direzione (regole di pagina, regole sulle intestazioni, ecosistema WordPress / Drupal ecc.). In fase di build le regole vengono pre-elaborate con l'iniezione dei campi __hints / __legacyHints / __keywordCombined per accelerare il matching.
Comandi di sviluppo comuni
bun install # installare le dipendenze
bun run dev # avvia il vite dev server, hot-reload dell'estensione
bun run build # compila in dist/, caricabile in Chrome
bun run typecheck # controllo rigoroso dei tipi con vue-tsc
bun run lint # controllo eslint
bun run docs:dev # anteprima locale della documentazione
bun run docs:build # compila il sito di documentazione staticoIn modalità dev, le pagine dell'estensione supportano l'hot update. Le modifiche a popup / settings / help di solito si aggiornano automaticamente; dopo aver modificato src/background/ o il content script, è necessario aggiornare manualmente la scheda dell'estensione in chrome://extensions/.
Entry point Vue
Tre SPA indipendenti, compilate separatamente, senza interferenze:
| Entry point | File | Descrizione |
|---|---|---|
| popup | src/ui/popup/index.html | Finestra 440px × 600px che appare cliccando l'icona in alto a destra |
| settings | src/ui/settings/index.html | Options page aperta dai dettagli in chrome://extensions/ |
| help | src/ui/help/index.html | Pagina indipendente aperta cliccando "Guida" nelle impostazioni |