Skip to content

发布

WXT 可以将扩展包打包并提交到各应用商店供审核或自定义发布。

第一次发布

如果你第一次向商店提交扩展,请必须手动进行此过程。WXT 不帮助你创建条目,每个商店都有独特的步骤和要求,你需要熟悉这些内容。

有关特定商店的详细信息,请参阅以下部分。

自动化

WXT 提供两个命令来帮助自动化提交新版本并发布:

  • wxt submit init:设置所有必要的秘密和选项,用于 wxt submit 命令
  • wxt submit:提交新的扩展包供审核(一旦通过审核后自动发布)

要开始,请运行 wxt submit init 并按照提示完成。完成后你应该有一个 .env.submit 文件!WXT 会使用此文件来提交更新。

在 CI 中,确保你将所有环境变量添加到提交步骤中。

要提交新的版本以进行发布,构建所有你计划发布的 ZIP 包:

sh
wxt zip
wxt zip -b firefox

然后运行 wxt submit 命令,通过所有 ZIP 文件传递给你想要发布的更新。在这种情况下,我们将为所有三个主要商店(Chrome Web Store、Edge Addons 和 Firefox Addon Store)发布一次新的版本。

如果你第一次运行该命令或最近更改了发布流程,请通过 --dry-run 选项测试你的秘密。

sh
wxt submit --dry-run \
  --chrome-zip .output/{your-extension}-{version}-chrome.zip \
  --firefox-zip .output/{your-extension}-{version}-firefox.zip --firefox-sources-zip .output/{your-extension}-{version}-sources.zip \
  --edge-zip .output/{your-extension}-{version}-chrome.zip

如果 dry run 通过,移除标志并进行实际发布:

sh
wxt submit \
  --chrome-zip .output/{your-extension}-{version}-chrome.zip \
  --firefox-zip .output/{your-extension}-{version}-firefox.zip --firefox-sources-zip .output/{your-extension}-{version}-sources.zip \
  --edge-zip .output/{your-extension}-{version}-chrome.zip

WARNING

请参阅 Firefox Addon Store 部分,了解 --firefox-sources-zip 选项的更多细节。

GitHub Action

以下是一个提交新版本供审核的 GitHub 动作示例。确保你已将所有需要使用的秘密添加到仓库设置中。

yml
name: Release

on:
  workflow_dispatch:

jobs:
  submit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: pnpm/action-setup@v4

      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: 'pnpm'

      - name: 安装依赖项
        run: pnpm install

      - name: 包括扩展包
        run: |
          pnpm zip
          pnpm zip:firefox

      - name: 提交到商店
        run: |
          pnpm wxt submit \
            --chrome-zip .output/*-chrome.zip \
            --firefox-zip .output/*-firefox.zip --firefox-sources-zip .output/*-sources.zip
        env:
          CHROME_EXTENSION_ID: ${{ secrets.CHROME_EXTENSION_ID }}
          CHROME_CLIENT_ID: ${{ secrets.CHROME_CLIENT_ID }}
          CHROME_CLIENT_SECRET: ${{ secrets.CHROME_CLIENT_SECRET }}
          CHROME_REFRESH_TOKEN: ${{ secrets.CHROME_REFRESH_TOKEN }}
          FIREFOX_EXTENSION_ID: ${{ secrets.FIREFOX_EXTENSION_ID }}
          FIREFOX_JWT_ISSUER: ${{ secrets.FIREFOX_JWT_ISSUER }}
          FIREFOX_JWT_SECRET: ${{ secrets.FIREFOX_JWT_SECRET }}

上述动作构建了基础工作流程,包括 zipsubmit 步骤。要增强 GitHub 动作并深入探索更复杂的场景,请参考以下实际项目中的示例。它们引入了高级功能,如版本管理、发布说明生成和 GitHub 发布,适用于不同的需求: