Carregar e testar localmente
Carregue uma presença compilada na extensão Nowly com um pacote de desenvolvimento pré-compilado ou um zip solto.
Depois de nowly build <slug>, você ainda precisa colocar esse pacote em um navegador. Existem dois métodos de carregamento local. Nenhum deles se comunica com a API do Nowly.
1. Extensão pré-compilada (nowly extension)
Este é o caminho usual para a primeira configuração. A CLI baixa um build de desenvolvimento do Chrome ou Firefox e incorpora a presence compilada.
nowly build youtube
nowly extension youtube # Chrome (padrão)
nowly extension youtube --firefox
nowly extension youtube --f # Alias do FirefoxVocê pode passar vários slugs:
nowly extension youtube github figma --firefoxAs opções de navegador são mutuamente exclusivas. Use --chrome / --c para selecionar o Chrome explicitamente.
Depois:
- Chrome: abra
chrome://extensions, ative o Modo desenvolvedor e escolha Carregar sem compactação →dist/extension-dev - Firefox: abra
about:debugging#/runtime/this-firefox, escolha This Firefox, clique em Load Temporary Add-on... e selecionedist/extension-dev-firefox/manifest.json
A presence é instalada a partir de dev-presences.json quando a extensão inicia. Depois de alterar o código, recompile, execute nowly extension <slug> novamente e recarregue a extensão.
Para usar um build local em vez do zip do CDN:
nowly extension youtube --chrome --from ../nowly/apps/extension/dist/chrome
nowly extension youtube --firefox --from ../nowly/apps/extension/dist/firefoxnowly extension grava uma pasta não compactada. Use-o quando o Nowly ainda não estiver carregado no navegador.
Monorepo completo do Nowly
Se você clonou o nowly e executou pnpm repos (que clona o presences em packages/presences), pode incorporar cada presença compilada na extensão:
nowly build youtube
pnpm build:extension:dev --bundledCarregue apps/extension/dist/chrome sem compactação. Recarregue após cada recompilação.
2. Zip solto (nowly pack)
Use isso quando o Nowly já estiver carregado como um build de desenvolvimento não compactado. Instalações da Chrome Web Store rejeitam zips não assinados. Você só recompila a presença, não a extensão inteira.
nowly pack youtubeEsse comando compila a presença e depois compacta dist/presences/youtube/ em dist/packs/youtube.zip. O zip deve conter no mínimo metadata.json e bundle.js. Pastas aninhadas não são um problema.
Depois, no painel lateral:
- Abra Configurações → Avançado
- Ative o Modo desenvolvedor (sempre ativo em builds não compactados)
- Expanda Depuração
- Solte o arquivo
.zip(ou navegue até ele)
A presença é instalada como uma fonte local. A limpeza na inicialização de builds não compactados não a remove. Zips não assinados são aceitos apenas em um build não compactado (Carregar sem compactação). O botão de modo desenvolvedor nas Configurações apenas exibe a UI de Depuração; ele não permite a instalação de zips em um build da loja. Builds da loja ainda exigem uma versão assinada da API.
Após cada alteração de código:
nowly pack youtubeSolte o novo zip novamente. Você não precisa recarregar a extensão não compactada, a menos que tenha alterado a própria extensão.
Qual método escolher
| Situação | Método |
|---|---|
| Primeira configuração, ou sem Nowly no navegador | nowly extension <slug> |
| Nowly já carregado, iterando em uma presença | nowly pack <slug> e depois solte o zip |
| Você trabalha no monorepo completo do nowly | pnpm build:extension:dev --bundled |
Veja também CLI.