Compilar o Flecha a partir do código
O que você precisa
Seção intitulada “O que você precisa”- Um Mac com o Xcode e as ferramentas de linha de comando dele. Os scripts compilam para Apple silicon por padrão; defina
FLECHA_ARCH=x64para Intel. - O depot_tools no seu
PATH. - Um checkout do Chromium na versão 158, num volume APFS, com 100 GB ou mais livres. Baixe seguindo as instruções de build para macOS do Chromium. A primeira build leva várias horas.
- Node 22.5 ou mais novo (o auxiliar usa
node:sqlite).
O chromium/scripts/env.sh diz onde cada coisa fica, e todos os scripts leem esse arquivo. Aponte para o seu ambiente com CHROMIUM_SRC (o src do checkout), DEPOT_TOOLS, FLECHA_PROFILE (o perfil de dev) e FLECHA_DISK / FLECHA_VOLUME se você guarda o checkout numa imagem de disco.
Compilar e rodar
Seção intitulada “Compilar e rodar”-
Instale as dependências npm na raiz do repositório:
Janela do terminal npm ci -
Aplique os patches e compile o Chromium. O
apply.shprimeiro restaura todo arquivo que ele altera, então pode rodar de novo sem medo.Janela do terminal chromium/scripts/build.sh -
Abra a build de dev com um perfil próprio:
Janela do terminal chromium/scripts/run.sh
A build de dev é uma component build, então depois da primeira vez uma mudança só religa uma biblioteca pequena.
Mudanças só no shell
Seção intitulada “Mudanças só no shell”O run.sh carrega o shell de chromium/shell/dist. Recompile e abra de novo:
npm run shell:watch # rebuild on savenpm run typecheck # must pass before you send a changeO auxiliar compila com npm run host:build. Para registrar um auxiliar que você mesmo compilou:
chromium/scripts/install-native-host.shAlterar um patch
Seção intitulada “Alterar um patch”- Rode
chromium/scripts/apply.sh. - Edite o Chromium, marcando suas linhas com
// Flecha:. Sempre que der, coloque código novo em arquivos novos. - Salve o diff como patch:
git diff > chromium/patches/00NN-name.patchno checkout. - Rode o
apply.shde novo para conferir que o patch aplica sem erros.
Contribuir
Seção intitulada “Contribuir”- Pull requests vão para lucianodiisouza/flecha-browser. Bugs e ideias vão para as Issues.
- Use conventional commits:
feat,fix,docs,refactor,chore, com um escopo comoshell,chromiumounative-host. - O TypeScript é strict e
npm run typecheckprecisa passar. - Nada de dependências novas sem motivo, e nada de código, assets ou texto do Arc.
- Confira o modo claro e o escuro, e anexe um screenshot em mudanças de interface.
- As contribuições têm licença MIT, como o resto do Flecha.
Próximo: como as versões são feitas.