Skip to content

import Publish from "/snippets/cli/publish.mdx";

bun publish は、パッケージを自動的に tarball にパックし、package.json からカタログとワークスペースプロトコルを削除し(必要に応じてバージョンを解決)、設定ファイルで指定されたレジストリに公開します。bunfig.toml.npmrc の両方のファイルがサポートされています。

sh
## 現在の作業ディレクトリからパッケージを公開
bun publish
txt
bun publish v1.3.3 (ca7428e9)

packed 203B package.json
packed 224B README.md
packed 30B index.ts
packed 0.64KB tsconfig.json

合計ファイル数:4
Shasum: 79e2b4377b63f4de38dc7ea6e5e9dbee08311a69
Integrity: sha512-6QSNlDdSwyG/+[...]X6wXHriDWr6fA==
展開サイズ:1.1KB
パックサイズ:0.76KB
タグ:latest
アクセス:default
レジストリ:http://localhost:4873/

 + publish-1@1.0.0

または、bun pm pack を使用してパッケージを個別にパックし、出力された tarball へのパスを指定して bun publish を実行することで、個別にパックして公開できます。

sh
bun pm pack
...
bun publish ./package.tgz

NOTE

tarball パスが提供された場合、`bun publish` はライフサイクルスクリプト(`prepublishOnly/prepack/prepare/postpack/publish/postpublish`)を実行しません。スクリプトは `bun publish` によってパッケージがパックされた場合にのみ実行されます。

--access

--access フラグを使用して、公開されるパッケージのアクセスレベルを設定できます。アクセスレベルは public または restricted のいずれかになります。スコープなしパッケージは常に public であり、--access restricted でスコープなしパッケージを公開しようとするとエラーになります。

sh
bun publish --access public

--accesspackage.jsonpublishConfig フィールドでも設定できます。

json
{
  "publishConfig": {
    "access": "restricted"
  }
}

--tag

公開されるパッケージバージョンのタグを設定します。デフォルトでは、タグは latest です。パッケージの初期バージョンは、指定されたタグに加えて、常に latest タグが付けられます。

sh
bun publish --tag alpha

--tagpackage.jsonpublishConfig フィールドでも設定できます。

json
{
  "publishConfig": {
    "tag": "next"
  }
}

--dry-run

--dry-run フラグを使用して、実際にパッケージを公開せずに公開プロセスをシミュレートできます。これは、実際に公開せずに公開パッケージの内容を確認するのに役立ちます。

sh
bun publish --dry-run

--tolerate-republish

パッケージバージョンが既に存在する場合に、コード 1 ではなくコード 0 で終了します。ジョブが再実行される可能性がある CI/CD で役立ちます。

sh
bun publish --tolerate-republish

--gzip-level

パッケージをパックするときに使用する gzip 圧縮レベルを指定します。tarball パス引数なしの bun publish にのみ適用されます。値の範囲は 0 から 9 です(デフォルトは 9)。

--auth-type

npm アカウントで 2FA を有効にしている場合、bun publish はワンタイムパスワードの入力を促します。これはブラウザまたは CLI を通じて行えます。--auth-type フラグを使用して、npm レジストリに希望する方法を指示できます。可能な値は weblegacy で、デフォルトは web です。

sh
bun publish --auth-type legacy
...
この操作にはワンタイムパスワードが必要です。
OTP を入力:123456
...

--otp

ワンタイムパスワードを CLI に直接提供します。パスワードが有効な場合、公開前にワンタイムパスワードの追加プロンプトをスキップします。使用例:

sh
bun publish --otp 123456

NOTE

`bun publish` は `NPM_CONFIG_TOKEN` 環境変数を尊重します。これは github actions や自動化されたワークフローで公開するときに使用できます。

Bun by www.bunjs.com.cn 編集