Diese Beitragsserie ist auf NgateSystems.com indiziert. Dort finden Sie auch eine äußerst nützliche Stichwortsuchfunktion.
Letzte Bewertung: 24. November
Beitrag 4.2 stellte das Konzept des Vor-Renderings einer Webseite vor. Die Idee war, dass, wenn sich eine Seite nie ändert (oder sich zumindest nicht zu oft ändert), sie während der „Erstellung“ des Projekts genauso gut in HTML umgewandelt werden kann.
Das ist in Ordnung, aber wenn sich die zugrunde liegenden Daten zu oft ändern, wird es lästig, Builds auszuführen, um vorgerenderte Seiten manuell auf den neuesten Stand zu bringen. Automatisierung ist sicherlich die Antwort.
Sie können dies auf verschiedene Arten angehen, aber ich empfehle, ein Skript zu verwenden, um die Build-/Bereitstellungssequenz auszuführen, und dann den Windows-Planer zu veranlassen, dies automatisch auszuführen
Hier ist ein PS1-Skript, das Sie verwenden könnten:
$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 }
In diesem Skript ist [myProjectId} Ihre Google-Projekt-ID – z. B. „svelte-dev-80286“
und [myProjectPath] ist der vollständige Pfadname für Ihr VSCode-Projekt – z. B. „C:UsersmjoycDesktopGitProjectssvelte-dev“. Die Ausgabedatei log.txt landet im Stammverzeichnis Ihres VSCode-Projektordners
Das Skript sieht komplizierter aus, als Sie vielleicht erwartet haben. Hier sind die Gründe dafür:
Da Sie beabsichtigen, das Skript automatisch zu planen, müssen Sie eine Protokolldatei führen, die Ihnen im Falle eines Fehlers mitteilt, was schief gelaufen ist. Dies allein sorgt für viel unvermeidbares „Unordnung“. Es gibt aber auch einen seltsamen Abschnitt zum Löschen der Version. Sie benötigen dies, da Google jedes Mal, wenn Sie einen „Build“ ausführen, eine neue Version im Cloud-Speicher erstellt. Es gibt ein Standardmaximum für die Anzahl der Versionen, die Sie erstellen können. Ich habe diesen Abschnitt hinzugefügt, als mein System einen Fehler machte, als die Versionszahl 200 erreichte.
Im obigen Skript beschränke ich die Anzahl der verwalteten Versionen auf nur 10 (ich bezahle jetzt für mein App-Run-Hosting!).
Die direkteste Möglichkeit, die Skriptdatei in einer VSCode-Terminalsitzung zu testen, besteht darin, ihren Inhalt auszuwählen, ihn in die Sitzung einzufügen und die Eingabetaste zu drücken. Für Produktionszwecke ist jedoch eine gewisse Automatisierung erforderlich.
Hier ist ein Verfahren zum Registrieren einer Windows-Scheduler-Aufgabe zum Ausführen des Build-Skripts.
Ich verwende eine Windows-Scheduler-Aufgabe, die mit dem oben genannten Verfahren erstellt wurde, um einen nächtlichen Build für die vorgerenderte Schlüsselwortsuchseite „ngatesystems.com“ auszuführen. Obwohl nur noch selten neue Beiträge hinzugefügt werden, bearbeite ich weiterhin regelmäßig bestehende Seiten. Durch die nächtliche Ausführungsanordnung liegt die Suchseite nie mehr als einen Tag hinter den Live-Daten zurück.
Das obige ist der detaillierte Inhalt vonNgSysV.Automated Svelte Pre-Render Builds. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!