Distribuisci il tuo sito Astro con Deno
Puoi distribuire un sito Astro statico o renderizzato on-demand usando Deno, sia sul tuo stesso server, o su Deno Deploy, un sistema distribuito che esegue JavaScript, TypeScript, e al limite WebAssembly, in tutto il mondo.
Questa guida include le istruzioni per eseguire il tuo sito Astro sul tuo stesso server con Deno, e distribuire su Deno Deploy attraverso GitHub Actions o Deno Deploy CLI.
Requisiti
Sezione intitolata “Requisiti”Questa guida presuppone che hai già Deno intallato.
Configurazione Del Progetto
Sezione intitolata “Configurazione Del Progetto”Il tuo progetto Astro può essere distribuito come sito statico, o come sito renderizzato on-demand.
Sito Statico
Sezione intitolata “Sito Statico”Il tuo progetto Astro, per impostazione predefinta, è un sito statico. Non hai bisogno di configurazioni extra per distribuire un sito Astro statico con Deno, o su Deno Deploy.
Adattatore per il rendering on-demand
Sezione intitolata “Adattatore per il rendering on-demand”Per abilitare il rendering on-demand nel tuo progetto Astro usando Deno, e per distribuirlo su Deno Deploy:
-
Installa l’adattatore
@deno/astro-adapternelle tue dipendenze del progetto usando il tuo package manager preferito:Terminal window npm install @deno/astro-adapterTerminal window pnpm install @deno/astro-adapterTerminal window yarn add @deno/astro-adapter -
Aggiorna il tuo file di configuratione del progetto
astro.config.mjscon le seguenti modifiche.astro.config.mjs import { defineConfig } from 'astro/config';import deno from '@deno/astro-adapter';export default defineConfig({output: 'server',adapter: deno(),}); -
Aggiorna il tuo script
previewinpackage.jsoncon le seguenti modifiche.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"}}Puoi ora usare questo comando per vedere l’anteprima del tuo sito Astro di produzione localmente con Deno.
Terminal window npm run previewTerminal window pnpm run previewTerminal window yarn run preview
Come distribuire
Sezione intitolata “Come distribuire”Puoi eseguire il tuo sito Astro sul tuo stesso server, o distribuirlo su Deno Deploy attraverso GitHub Actions o usando Deno Deploy’s CLI (interfaccia a linea di comando).
Sul tuo stesso server
Sezione intitolata “Sul tuo stesso server”-
Copia il tuo progetto sul tuo server.
-
Installa le dipendenze del progetto usando il tuo package manager preferito:
Terminal window npm installTerminal window pnpm installTerminal window yarn -
Compila il tuo sito Astro con il tuo package manager preferito:
Terminal window npm run buildTerminal window pnpm run buildTerminal window yarn run build -
Avvia la tua applicazione con il comando seguente:
Terminal window deno run -A jsr:@std/http/file-server distTerminal window deno run -A ./dist/server/entry.mjs
Distribuzione Con GitHub Actions
Sezione intitolata “Distribuzione Con GitHub Actions”Se il tuo progetto è salvato su GitHub, il sito web Deno Deploy ti guiderà nell’impostare le GitHub Actions per distribuire il tuo sito Astro.
-
Invia il tuo codice su un repository Github pubblico o privato.
-
Accedi a Deno Deploy con il tuo account GitHub, e clicca su Nuovo Progetto.
-
Seleziona il tuo repository, il branch che vuoi distribuire, e seleziona la modalità GitHub Action. (Il tuo sito Astro richiede un passaggio di compilazione, e non può usare la modalità Automatica.)
-
Nel tuo progetto Astro, crea un nuovo file in
.github/workflows/deploy.ymle incollaci il seguente YAML. Questo è simile allo YAML dato da Deno Deploy, con i passaggi addizionali necessari al tuo sito Astro..github/workflows/deploy.yml name: Deployon: [push]jobs:deploy:name: Deployruns-on: ubuntu-latestpermissions:id-token: write # Necessario per l'autenticazione con Deno Deploycontents: read # Necessario per clonare il repositorysteps:- name: Clone repositoryuses: actions/checkout@v6# Non usi npm? Sostituisci `npm ci` con `yarn install` o `pnpm i`- name: Install dependenciesrun: npm ci# Non usi npm? Sostituisci `npm run build` con `yarn build` o `pnpm run build`- name: Build Astrorun: npm run build- name: Upload to Deno Deployuses: denoland/deployctl@v1with:project: my-deno-project # TODO: sostituisci con il nome del progetto di Deno Deployentrypoint: jsr:@std/http/file-serverroot: dist.github/workflows/deploy.yml name: Deployon: [push]jobs:deploy:name: Deployruns-on: ubuntu-latestpermissions:id-token: write # Necessario per l'autenticazione con Deno Deploycontents: read # Necessario per clonare il repositorysteps:- name: Clone repositoryuses: actions/checkout@v6# Non usi npm? Sostituisci `npm ci` con `yarn install` o `pnpm i`- name: Install dependenciesrun: npm ci# Non usi npm? Sostituisci `npm run build` con `yarn build` o `pnpm run build`- name: Build Astrorun: npm run build- name: Upload to Deno Deployuses: denoland/deployctl@v1with:project: my-deno-project # TODO: sostituisci con il nome del progetto di Deno Deployentrypoint: dist/server/entry.mjs -
Dopo aver effettuato il commit di questo file YAML, e inviato a GitHub sul tuo branch configurato per la distribuzione, la distribuzione dovrebbe iniziare automaticamente!
Puoi monitorare il progresso usando la scheda “Actions” sulla pagina del tuo repository GitHub, o su Deno Deploy.
Distribuzione CLI
Sezione intitolata “Distribuzione CLI”-
Installa Deno Deploy CLI.
Terminal window deno install -gArf jsr:@deno/deployctl -
Compila il tuo sito Astro con il tuo package manager preferito:
Terminal window npm run buildTerminal window pnpm run buildTerminal window yarn run build -
Esegui
deployctlper distribuire!Terminal window cd dist && deployctl deploy jsr:@std/http/file-serverTerminal window deployctl deploy ./dist/server/entry.mjsPuoi monitorare tutte le tue distribuzioni su Deno Deploy.
-
(Opzionale) Per semplificare la compilazione e la distribuzione in un comando, aggiungi uno script
deploy-denoinpackage.json.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"}}Quindi puoi usare questo comando per compilare e distribuire il tuo sito Astro in un passaggio.
Terminal window npm run deno-deploy