Extension.jsについて
- Extension.jsは、設定が不要なプラグアンドプレイ方式のクロスブラウザ拡張開発ツールです。
- TypeScript、WebAssembly、React、モダンなJavaScriptをデフォルトでサポートしているため、クロスブラウザ拡張を作成できます
新規拡張の作成
Chrome Extension Samplesの活用
Microsoft EdgeでChrome Extension Samplesを使用する
EdgeでMozillaアドオンを実行する
既存拡張にExtension.jsを使う
- 既存の拡張でパッケージマネージャーを使用している場合、Extension.jsをインストールしてスクリプトを作成すれば実行可能です
devDependencyとしてextensionをインストール
npm install extension --save-dev
- npmスクリプトとExtension.jsコマンドを接続
{
"scripts": {
"build": "extension build",
"dev": "extension dev",
"start": "extension start"
},
"devDependencies": {
"extension": "latest"
}
}
- 開発時は
npm run dev、本番プレビューはnpm run start、本番ビルドはnpm run buildを使用します
開発対象ブラウザーの指定
| Brave |
Chrome |
Edge |
Firefox |
Opera |
Safari |
Vivaldi |
| ☑️ |
✅ |
✅ |
⛔️ |
☑️ |
⛔️ |
☑️ |
- ☑️ = 動作する可能性が高いが、ブラウザーランナーをサポートしていない
- モバイルブラウザーのサポート状況
| Firefox Android |
iOS Safari |
| ⛔️ |
⛔️ |
- 特定ブラウザー向けに
dev/startコマンドへ--browserフラグを渡します
- 例:
npx extension dev path/to/extension --browser=edge
- ヒント:
--browser="all"を渡すと、利用可能なすべてのブラウザーを一度に読み込みます
GN⁺の見解
- Extension.jsは、クロスブラウザ拡張開発向けの強力なツールのように見えます。特に設定なしで使え、複数ブラウザーを簡単にサポートできるため、開発時間を大きく短縮できると感じます。
- Chrome Extension SamplesやMDN WebExtensions Examplesといった既存サンプルを活用できるのも大きな利点です。初心者開発者でも簡単に始められそうです。
- 一方、FirefoxやSafariなど一部のブラウザーはまだ完全にサポートされていないようなので注意が必要です。特定ブラウザーのみを対象にする場合は、そのブラウザー専用の開発ツールの利用を検討するべきでしょう。
- 既存のPlasmo、WebExtensions APIなどの類似ツールと比較した際の長所・短所が気になります。特にManifest V3などの最新仕様への対応可否を確認する必要がありそうです。
1件のコメント
Hacker Newsのコメント
Extension.jsが紹介されたExtension.jsがこうした悩みを解消してくれると期待されているExtension.jsのREADMEドキュメントもよく整っていて高評価Extension.jsの利用を検討中Extension.jsに含まれると良いという意見が示されたPlasmoのような類似フレームワークとの比較について質問が提起されたExtension.jsがこれを解消してくれると期待safari-web-extension-converterCLIツールを使えば比較的簡単だという意見Extension.jsの利点についての疑問が示されたExtension.jsへの期待感の表明