Maison >interface Web >js tutoriel >Constructions de pré-rendu NgSysV.Automated Svelte

Constructions de pré-rendu NgSysV.Automated Svelte

Patricia Arquette
Patricia Arquetteoriginal
2024-11-28 15:40:11414parcourir

NgSysV.Automated Svelte Pre-render Builds

Cette série d'articles est indexée sur NgateSystems.com. Vous y trouverez également une fonction de recherche par mot-clé très utile.

Dernière révision : 24 novembre

1. Présentation

La publication 4.2 a lancé le concept de pré-rendu d'une page Web. L'idée était que si une page ne change jamais (ou, du moins, ne change pas trop souvent), alors elle pourrait aussi bien être transformée en HTML lors de la "construction" du projet.

C'est bien mais, si les données sous-jacentes changent trop souvent, exécuter des builds pour mettre à jour les pages pré-rendues manuellement deviendra ennuyeux. L'automatisation est sûrement la réponse.

Vous pouvez résoudre ce problème de plusieurs manières, mais je vous recommande d'utiliser un script pour exécuter la séquence de construction/déploiement, puis de demander au planificateur Windows de l'exécuter automatiquement

2. Un script Powershell Build/Deploy

Voici un script PS1 que vous pourriez utiliser :

$projectId = [myProjectId]
$projectPath = [myProjectPath]

# Define log file path
$logPath = "$projectPath\log.txt"

# Overwrite the log file with a timestamp at the beginning
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
"Log started at $timestamp" | Out-File -FilePath $logPath -Force

# Set the project ID
gcloud config set project $projectId

# Redirect output to log file
try {

    cd $projectPath 2>&1 | Out-File -FilePath $logPath -Append

    npm run build | Out-File -FilePath $logPath -Append

    # Fetch all versions ordered by creation date, excluding the latest 10
    $oldVersions = gcloud app versions list  `
        --sort-by="~version.createTime" `
        --format="value(version.id)" | Select-Object -Skip 10

    # Delete the old versions if there are any
    if ($oldVersions.Count -gt 0) {
        "Deleting old versions..."| Out-File -FilePath $logPath -Force
        $oldVersions | ForEach-Object {
            gcloud app versions delete $_ --quiet 2>&1 | Out-File -FilePath $logPath -Append
        }
    } else {
        "No old versions to delete. The limit of $MaxVersions is not exceeded." | Out-File -FilePath $logPath -Force
    }

    gcloud app deploy build/app.yaml --quiet 2>&1 | Out-File -FilePath $logPath -Append

    } catch {
    "An error occurred: $_" | Out-File -FilePath $logPath -Append
}

Dans ce script, [myProjectId} est votre identifiant de projet Google - par exemple "svelte-dev-80286"
et [myProjectPath] est le chemin d'accès complet de votre projet VSCode - par exemple "C:UsersmjoycDesktopGitProjectssvelte-dev". Le fichier log.txt de sortie se retrouve à la racine de votre dossier de projet VSCode

Le script semble plus compliqué que prévu. Voici les raisons de cela :

Étant donné que vous avez l'intention de planifier le script automatiquement, vous devez conserver un fichier journal pour vous indiquer ce qui ne va pas en cas d'erreur. Cela ajoute à lui seul un « fouillis » inévitable. Mais il y a aussi une étrange section « suppression de version ». Vous en avez besoin car, chaque fois que vous exécutez un « build », Google créera une nouvelle version dans le stockage cloud. Il existe un nombre maximum par défaut de versions que vous pouvez créer. J'ai ajouté cette section lorsque mon système a commis une erreur lorsque le nombre de versions atteignait 200.

Dans le script ci-dessus, je limite le nombre de versions maintenues à seulement 10 (je paie l'hébergement de mon application maintenant !).

Le moyen le plus direct de tester le fichier de script dans une session de terminal VSCode est de sélectionner son contenu, de le coller dans la session et d'appuyer sur Entrée. Mais à des fins de production, vous avez besoin d'une certaine automatisation.

3. Configuration d'une planification Windows pour exécuter le script PowerShell

Voici une procédure pour enregistrer une tâche du planificateur Windows pour exécuter le script de build.

  1. Tapez « Planificateur de tâches » dans la barre de recherche Windows et ouvrez l'application.
  2. Dans le menu Actions, cliquez sur « Créer une tâche de base ».
  3. Fournissez un nom et une description pour la tâche
  4. Dans l'onglet Déclencheurs, sélectionnez l'intervalle auquel vous souhaitez exécuter le programme, tel que « Quotidien », « Hebdomadaire », etc.
  5. Spécifiez la date/heure de début et la fréquence de la tâche.
  6. Sélectionnez le bouton d'option « Démarrer un programme ».
  7. Maintenant, dans la fenêtre « Démarrer un programme » : Dans Programme/script : Utilisez "parcourir" pour vous aider à saisir le chemin de Windows PowerShell, par exemple : C:WindowsSystem32WindowsPowerShellv1.0powershell.exe Dans Arguments : saisissez le chemin complet du script. Par exemple : [chemin complet vers le script][mon nom de fichier de script].ps1 Dans « Démarrer dans » : saisissez le chemin du dossier où se trouve le script. par exemple "[chemin complet vers le script]"
  8. Dans la fenêtre suivante, cochez la case « Ouvrir la boîte de dialogue Propriétés de cette tâche lorsque je clique sur Terminer », puis cliquez sur le bouton Terminer.
  9. Dans l'onglet Général de la boîte de dialogue des propriétés, assurez-vous que les cases « Exécuter lorsque l'utilisateur est connecté ou non » et « Exécuter avec les privilèges les plus élevés » sont cochées. Cela garantit que vous exécutez le script avec les droits d'administrateur.
  10. Cliquez sur le bouton OK et confirmez votre droit d'enregistrer votre nouvelle tâche de planificateur en répondant à une invite de connexion avec votre nom d'utilisateur Microsoft et votre mot de passe pour votre machine.
  11. Testez la nouvelle tâche en ouvrant la bibliothèque de planification des tâches, en cliquant avec le bouton droit sur l'entrée de la tâche ici et en sélectionnant « Exécuter »

J'utilise une tâche du planificateur Windows créée à l'aide de la procédure ci-dessus pour exécuter une version nocturne pour la page de recherche par mot-clé pré-rendue "ngatesystems.com". Bien que les nouveaux articles ne soient désormais ajoutés que rarement, je continue de modifier régulièrement les pages existantes. L'exécution nocturne signifie que la page de recherche n'a jamais plus d'un jour de retard sur les données en direct.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn