跳转到内容

使用 Deno 部署你的 Astro 网站

你可以使用 Deno 部署静态或按需渲染的 Astro 网站,既可以部署在你自己的服务器上,也可以部署到 Deno Deploy,这是一个在全球边缘运行 JavaScript、TypeScript 和 WebAssembly 的分布式系统。

本指南包含在您自己的服务器上使用 Deno 运行 Astro 网站的说明,以及通过 GitHub Actions 或 Deno Deploy CLI 部署到 Deno Deploy 的说明。

本指南假定你已经安装了 Deno

你的 Astro 项目可以部署为静态网站,也可以部署为按需渲染的网站。

你的 Astro 项目默认是静态网站。你无需任何额外配置即可使用 Deno 或 Deno Deploy 部署静态 Astro 网站。

要在你的 Astro 项目中使用 Deno 启用按需渲染,并部署到 Deno Deploy

  1. 使用你偏好的包管理器,将 @deno/astro-adapter 适配器安装到你项目的依赖中

    终端窗口
    npm install @deno/astro-adapter
  2. 使用以下更改更新你的 astro.config.mjs 项目配置文件。

    astro.config.mjs
    import { defineConfig } from 'astro/config';
    import deno from '@deno/astro-adapter';
    export default defineConfig({
    output: 'server',
    adapter: deno(),
    });
  3. 使用以下更改更新 package.json 中的 preview 脚本。

    package.json
    {
    // ...
    "scripts": {
    "dev": "astro dev",
    "start": "astro dev",
    "build": "astro build",
    "preview": "astro preview"
    "preview": "deno run --allow-net --allow-read --allow-env ./dist/server/entry.mjs"
    }
    }

    现在你可以使用此命令在本地用 Deno 预览你的生产 Astro 网站。

    终端窗口
    npm run preview

你可以在自己的服务器上运行 Astro 网站,或者通过 GitHub Actions 或使用 Deno Deploy 的 CLI(命令行界面)部署到 Deno Deploy。

  1. 将你的项目复制到你的服务器上。

  2. 使用你偏好的包管理器安装项目依赖

    终端窗口
    npm install
  3. 使用你偏好的包管理器构建你的 Astro 网站

    终端窗口
    npm run build
  4. 使用以下命令启动你的应用程序

    终端窗口
    deno run -A jsr:@std/http/file-server dist

如果你的项目存储在 GitHub 上,Deno Deploy 网站将引导你设置 GitHub Actions 来部署你的 Astro 网站。

  1. 将你的代码推送到一个公共或私有的 GitHub 仓库。

  2. 使用你的 GitHub 帐户登录 Deno Deploy,然后点击 New Project

  3. 选择你的仓库、你想要部署的分支,并选择 GitHub Action 模式。(你的 Astro 网站需要一个构建步骤,不能使用自动模式。)

  4. 在你的 Astro 项目中,在 .github/workflows/deploy.yml 位置创建一个新文件,并粘贴下面的 YAML。这与 Deno Deploy 提供的 YAML 类似,但增加了你的 Astro 网站所需的额外步骤。

    .github/workflows/deploy.yml
    name: Deploy
    on: [push]
    jobs:
    deploy:
    name: Deploy
    runs-on: ubuntu-latest
    permissions:
    id-token: write # Needed for auth with Deno Deploy
    contents: read # Needed to clone the repository
    steps:
    - name: Clone repository
    uses: actions/checkout@v4
    # Not using npm? Change `npm ci` to `yarn install` or `pnpm i`
    - name: Install dependencies
    run: npm ci
    # Not using npm? Change `npm run build` to `yarn build` or `pnpm run build`
    - name: Build Astro
    run: npm run build
    - name: Upload to Deno Deploy
    uses: denoland/deployctl@v1
    with:
    project: my-deno-project # TODO: replace with Deno Deploy project name
    entrypoint: jsr:@std/http/file-server
    root: dist
  5. 提交此 YAML 文件并将其推送到 GitHub 上你配置的部署分支后,部署应会自动开始!

    你可以在 GitHub 仓库页面的“Actions”选项卡上或在 Deno Deploy 上跟踪进度。

  1. 安装 Deno Deploy CLI

    终端窗口
    deno install -gArf jsr:@deno/deployctl
  2. 使用你偏好的包管理器构建你的 Astro 网站

    终端窗口
    npm run build
  3. 运行 deployctl 进行部署!

    终端窗口
    cd dist && deployctl deploy jsr:@std/http/file-server

    你可以在 Deno Deploy 上跟踪你所有的部署。

  4. (可选)为了将构建和部署简化为一个命令,在 package.json 中添加一个 deploy-deno 脚本。

    package.json
    {
    // ...
    "scripts": {
    "dev": "astro dev",
    "start": "astro dev",
    "build": "astro build",
    "preview": "astro preview",
    "deno-deploy": "npm run build && cd dist && deployctl deploy jsr:@std/http/file-server"
    }
    }

    然后你就可以用这个命令一步完成 Astro 网站的构建和部署。

    终端窗口
    npm run deno-deploy

更多部署指南

贡献 社区 赞助