ローカルでの読み込みとテスト
ビルド済みのプレゼンスを、事前ビルド済みの開発パッケージまたはzipドロップでNowly拡張機能に読み込みます。
nowly build <slug> の後も、そのバンドルをブラウザに読み込む必要があります。ローカルでの読み込み方法は2つあります。どちらもNowly APIとは通信しません。
1. ビルド済み拡張機能(nowly extension)
これは初回セットアップに適した方法です。CLIはChromeまたはFirefoxの開発ビルドをダウンロードし、コンパイル済みのプレゼンスを組み込みます。
nowly build youtube
nowly extension youtube # Chrome(デフォルト)
nowly extension youtube --firefox
nowly extension youtube --f # Firefoxエイリアス複数のスラッグを渡せます:
nowly extension youtube github figma --firefoxブラウザオプションは同時に使用できません。Chromeを明示するには--chrome / --cを使用します。
その後:
- Chrome:
chrome://extensionsを開き、デベロッパーモードを有効にして、dist/extension-devを読み込みます - Firefox:
about:debugging#/runtime/this-firefoxを開き、This Firefox → **Load Temporary Add-on...**を選択し、dist/extension-dev-firefox/manifest.jsonを指定します
プレゼンスは起動時にdev-presences.jsonからインストールされます。コードを変更したら再ビルドし、nowly extension <slug>を再実行して拡張機能を再読み込みします。
CDN版の代わりにローカルビルドを使用するには:
nowly extension youtube --chrome --from ../nowly/apps/extension/dist/chrome
nowly extension youtube --firefox --from ../nowly/apps/extension/dist/firefoxnowly extensionはunpackedフォルダを書き出します。ブラウザにNowlyをまだ読み込んでいない場合に使用してください。
完全なNowlyモノレポ
nowly をクローンして pnpm repos を実行した場合(presences が packages/presences にクローンされます)、ビルドしたすべてのプレゼンスを拡張機能に組み込めます。
nowly build youtube
pnpm build:extension:dev --bundledapps/extension/dist/chrome をパッケージ化されていない状態で読み込みます。再ビルドのたびに再読み込みしてください。
2. Zipドロップ(nowly pack)
これは、Nowlyがすでにパッケージ化されていない開発ビルドとして読み込まれている場合に使用します。Chromeウェブストアからのストアインストールは署名なしのzipを拒否します。拡張機能全体ではなく、プレゼンスのみを再ビルドします。
nowly pack youtubeこのコマンドはプレゼンスをビルドし、dist/presences/youtube/ を dist/packs/youtube.zip にzip化します。zipには少なくとも metadata.json と bundle.js を含める必要があります。ネストしたフォルダがあっても問題ありません。
次に、サイドパネルで:
- 設定 → 高度な設定を開く
- デベロッパーモードを有効にする(パッケージ化されていないビルドでは常に有効)
- デバッグを展開する
.zipをドロップする(またはファイルを選択する)
プレゼンスはローカルソースとしてインストールされます。パッケージ化されていないビルドの起動時のプルーニングでも削除されません。署名なしのzipはパッケージ化されていないビルドでのみ受け入れられます(パッケージ化されていない拡張機能を読み込む)。設定のデベロッパーモードの切り替えは、デバッグUIを表示するだけで、ストアビルドでのzipインストールを許可するものではありません。ストアビルドは引き続きAPIからの署名付きリリースが必要です。
コードを変更するたびに:
nowly pack youtube新しいzipを再度ドロップします。拡張機能自体を変更しない限り、パッケージ化されていない拡張機能を再読み込みする必要はありません。
どちらの方法を選ぶか
| 状況 | 方法 |
|---|---|
| 初回セットアップ、またはブラウザにNowlyがない場合 | nowly extension <slug> |
| Nowlyがすでに読み込まれていて、1つのプレゼンスを反復開発する場合 | nowly pack <slug> の後、zipをドロップ |
| 完全な nowly モノレポで作業している場合 | pnpm build:extension:dev --bundled |
CLIも参照してください。