Dartのパッケージをpub.devに登録する方法を調査した

Photo by Yusril Permana ali / Unsplash

pubspecフォーマットとパッケージレイアウトの規約に従う

  1. LICENSEファイルが必要。DartとFlutterが使用しているBSD 3-clauseライセンスが推奨だがパッケージに適した別のライセンスでも良い。
  2. パッケージをgzip圧縮して100MBより小さくなければならない。大きい場合は複数パッケージに分割するか、.pubignoreファイルにより不要なコンテンツを削除する。
  3. パッケージはホストされた依存関係とSDKの依存関係にのみ依存する必要がある。
  4. パッケージのアップロードにはGoogleアカウントが必要。

Pubがパッケージを作成するために必要なファイルを作成する

  1. README.md - Markdownとしてレンダリングされる。Writing package pages | Dartを参考にして記述する。
  2. CHANGELOG.md - CHANGELOG.mdが存在するとpub.devのパッケージページのタブに表示される。
  3. pubspec.yaml - パッケージページの右側の説明やホームページなどの詳細情報。

認証済みパブリッシャー

パッケージの公開に認証済みパブリッシャーか独立したGoogleアカウントを使用できる。認証済みパブリッシャーには以下の利点がある。

  1. パブリッシャードメインが認証されていることがわかる。
  2. pub.devに個人のメールアドレスを表示させないようにでき、代わりにパブリッシャーのドメインと連絡先アドレスを表示できる。
  3. 検索ページと個別パッケージページに検証済みバッジが表示される。

認証済みパブリッシャーの作成手順

  1. pub.devを開く。
  2. Googleアカウントでpub.devにログインする。
  3. 右上のユーザメニューで「Create Publisher」を選択する。
  4. 関連付けるドメイン名を入力し、「Create Publisher」をクリックする。
  5. OKを選択する。
  6. プロンプトが表示されたら検証フローを完了し、Google Search Consoleを開く。
  • DNSレコードを追加したときはSearch Consoleに変更が反映されるまで時間がかかる。
  • 検証フローが完了したら4に戻る。

dart pub publishコマンドを利用する

publishコマンドをテストする場合は

dart pub publish --dry-run

現在pubコマンドでは検証済みパブリッシャーがパッケージを直接公開できない。新しいパッケージをGoogleアカウントで公開し、その後パッケージをパブリッシャーに転送する。転送後はdart pub publishコマンドでパッケージを更新できる。

パッケージのルートディレクトリ以下のファイルは以下の例外を除いてすべて公開パッケージに含まれる。

  1. 隠しファイル・ディレクトリ
  2. packagesという名前のディレクトリ
  3. .pubignoreもしくは.gitignoreで指定されたファイル・ディレクトリ
Ryoichi Izumita

Ryoichi Izumita