ローカルでの読み込みとテスト
ビルド済みのプレゼンスを、事前ビルド済みの開発パッケージまたはzipドロップでNowly拡張機能に読み込みます。
nowly build <slug> の後も、そのバンドルをブラウザに読み込む必要があります。ローカルでの読み込み方法は2つあります。どちらもNowly APIとは通信しません。
1. ビルド済み拡張機能(nowly extension)
これは、特に presences リポジトリのみをクローンした場合の、通常の初回手順です。CLIは既製のChrome開発ビルドをダウンロードし(またはローカルのものをコピーし)、コンパイル済みのプレゼンスをそこに組み込みます。
nowly build youtube
nowly extension youtube複数のスラッグを渡すこともできます。
nowly extension youtube github figmaその後:
chrome://extensionsを開き、デベロッパーモードを有効にする- パッケージ化されていない拡張機能を読み込むを選び、
dist/extension-devを選択する - Discord DesktopとNowly Hostを起動した状態で対象サイトを開く
プレゼンスは、拡張機能の起動時に dev-presences.json からインストールされます。コードを変更した後は、再ビルドし、nowly extension <slug> を再実行し、パッケージ化されていない拡張機能を再読み込みしてください。
CDNのzipの代わりにローカルの拡張機能ビルドを使用するには:
nowly extension youtube --from ../nowly/apps/extension/dist/chromenowly extension はパッケージ化されていないフォルダを書き出します。ブラウザにまだNowlyを読み込んでいない場合に適したツールです。
完全なNowlyモノレポ
presences をサブモジュールとして含む nowly をクローンしている場合、ビルドしたすべてのプレゼンスを拡張機能に組み込めます。
nowly build youtube
pnpm build:extension:devapps/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 |
CLIも参照してください。