Veröffentliche deine Astro-Website mit Deno
Du kannst eine statische oder serverseitig gerenderte Astro-Website mittels Deno veröffentlichen, entweder auf deinem eigenen Server oder auf Deno Deploy, einem verteilten System, das JavaScript, TypeScript und WebAssembly weltweit ausführt.
Dieser Leitfaden enthält Anweisungen dazu, wie du deine Astro-Website mittels Deno auf deinem eigenen Server betreibst sowie zur Bereitstellung in Deno Deploy über GitHub Actions oder die CLI von Deno Deploy.
Anforderungen
Abschnitt betitelt „Anforderungen“In dieser Anleitung wird davon ausgegangen, dass du Deno bereits installiert hast.
Projektkonfiguration
Abschnitt betitelt „Projektkonfiguration“Dein Astro-Projekt kann als statische Website oder als serverseitig gerenderte Website (SSR) bereitgestellt werden.
Statische Website
Abschnitt betitelt „Statische Website“Dein Astro-Projekt ist standardmäßig eine statische Website. Du brauchst keine zusätzliche Konfiguration, um eine statische Astro-Website mit Deno zu veröffentlichen oder an Deno Deploy zu übergeben.
Adapter für Rendern bei Bedarf (SSR)
Abschnitt betitelt „Adapter für Rendern bei Bedarf (SSR)“So aktivierst du SSR in deinem Astro-Projekt und stellst es mit Deno Deploy bereit:
-
Installiere den
@deno/astro-adapter-Adapter mit deinem bevorzugten Paketmanager als Abhängigkeit deines Projekts.Terminal window npm install @deno/astro-adapterTerminal window pnpm install @deno/astro-adapterTerminal window yarn add @deno/astro-adapter -
Aktualisiere deine Projektkonfigurationsdatei
astro.config.mjsmit den folgenden Änderungen.astro.config.mjs import { defineConfig } from 'astro/config';import deno from '@deno/astro-adapter';export default defineConfig({output: 'server',adapter: deno(),}); -
Aktualisiere dein
preview-Skript in der Dateipackage.jsonmit der folgenden Änderung.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"}}Du kannst jetzt diesen Befehl verwenden, um deine Astro-Produktionsseite lokal mit Deno zu überprüfen.
Terminal window npm run previewTerminal window pnpm run previewTerminal window yarn run preview
Wie man veröffentlicht
Abschnitt betitelt „Wie man veröffentlicht“Du kannst deine Astro-Website auf deinem eigenen Server betreiben oder auf Deno Deploy über GitHub Actions oder über das Deno Deploy CLI (Command Line Interface) bereitstellen.
Auf deinem eigenen Server
Abschnitt betitelt „Auf deinem eigenen Server“-
Kopiere dein Projekt auf deinen Server.
-
Installiere die Abhängigkeiten des Projekts mit deinem bevorzugten Paketmanager:
Terminal window npm installTerminal window pnpm installTerminal window yarn -
Erstelle deine Astro-Website mit deinem bevorzugten Paketmanager:
Terminal window npm run buildTerminal window pnpm run buildTerminal window yarn run build -
Starte deine Applikation mit dem folgenden Befehl:
Terminal window deno run -A jsr:@std/http/file-server distTerminal window deno run -A ./dist/server/entry.mjs
GitHub Actions Veröffentlichung
Abschnitt betitelt „GitHub Actions Veröffentlichung“Wenn dein Projekt auf GitHub gespeichert ist, führt dich die Deno Deploy-Webseite durch die Einrichtung von GitHub-Aktionen für die Bereitstellung deiner Astro-Website.
-
Veröffentliche deinen Code in einem öffentlichen oder privaten GitHub-Repository.
-
Melde dich auf Deno Deploy mit deinem GitHub-Konto an und klicke auf Neues Projekt.
-
Wähle dein Repository und den Branch aus, den du bereitstellen möchtest, und wähle den Modus GitHub Action. (Deine Astro-Website benötigt einen Build-Schritt und kann den automatischen Modus nicht verwenden.)
-
Erstelle in deinem Astro-Projekt eine neue Datei unter
.github/workflows/deploy.ymlund füge die unten stehende YAML ein. Diese Datei ähnelt der YAML-Datei von Deno Deploy, mit den zusätzlichen Schritten, die du für deine Astro-Website benötigst..github/workflows/deploy.yml name: Deployon: [push]jobs:deploy:name: Deployruns-on: ubuntu-latestpermissions:id-token: write # Benötigt für die Autorisierung mit Deno Deploycontents: read # Benötigt, um das Repository zu klonensteps:- name: Clone repositoryuses: actions/checkout@v6# Du benutzt kein npm? Ändere `npm ci` in `yarn install` oder `pnpm i`- name: Install dependenciesrun: npm ci# Du benutzt kein npm? Ändere `npm run build` in `yarn build` oder `pnpm run build`- name: Build Astrorun: npm run build- name: Upload to Deno Deployuses: denoland/deployctl@v1with:project: my-deno-project # TODO: durch Deno Deploy Projektnamen ersetzenentrypoint: jsr:@std/http/file-serverroot: dist.github/workflows/deploy.yml name: Deployon: [push]jobs:deploy:name: Deployruns-on: ubuntu-latestpermissions:id-token: write # Benötigt für die Autorisierung mit Deno Deploycontents: read # Benötigt, um das Repository zu klonensteps:- name: Clone repositoryuses: actions/checkout@v6# Du benutzt kein npm? Ändere `npm ci` in `yarn install` oder `pnpm i`- name: Install dependenciesrun: npm ci# Du benutzt kein npm? Ändere `npm run build` in `yarn build` oder `pnpm run build`- name: Build Astrorun: npm run build- name: Upload to Deno Deployuses: denoland/deployctl@v1with:project: my-deno-project # TODO: durch Deno Deploy Projektnamen ersetzenentrypoint: dist/server/entry.mjs -
Nachdem du diese YAML-Datei übertragen und auf GitHub in deinem konfigurierten Veröffentlichungs-Branch gepusht hast, sollte die Veröffentlichung automatisch beginnen!
Du kannst den Fortschritt auf der Registerkarte “Aktionen” auf deiner GitHub-Repository-Seite oder auf Deno Deploy verfolgen.
CLI-Veröffentlichung
Abschnitt betitelt „CLI-Veröffentlichung“-
Installiere das Deno Deploy CLI.
Terminal window deno install -gArf jsr:@deno/deployctl -
Erstelle deine Astro-Website mit deinem bevorzugten Paketmanager:
Terminal window npm run buildTerminal window pnpm run buildTerminal window yarn run build -
Führe
deployctlzum Veröffentlichen aus!Terminal window cd dist && deployctl deploy jsr:@std/http/file-serverTerminal window deployctl deploy ./dist/server/entry.mjsDu kannst alle deine Veröffentlichungen auf Deno Deploy verfolgen.
-
(Optional) Um den Build und die Veröffentlichung in einem Befehl zu vereinfachen, füge ein
deploy-denoSkript in diepackage.jsonein.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"}}package.json {// ..."scripts": {"dev": "astro dev","start": "astro dev","build": "astro build","preview": "deno run --allow-net --allow-read --allow-env ./dist/server/entry.mjs","deno-deploy": "npm run build && deployctl deploy ./dist/server/entry.mjs"}}Dann kannst du diesen Befehl verwenden, um deine Astro-Website in einem Schritt zu erstellen und veröffentlichen.
Terminal window npm run deno-deploy