此貼文系列已在 NgateSystems.com 建立索引。您還可以在那裡找到超級有用的關鍵字搜尋工具。
最後評論:24 年 11 月
Post 4.2 提出了預先渲染網頁的概念。這個想法是,如果一個頁面從不改變(或至少不經常改變),那麼它也可能在專案的「建置」過程中轉換成 HTMl。
這很好,但是,如果底層資料更改得太頻繁,運行建置來使預渲染頁面保持最新手動將會變得煩人。 自動化肯定是答案。
您可以透過多種方式解決這個問題,但我建議使用腳本來執行建置/部署序列,然後讓 Windows 排程器自動執行它
這是您可能會使用的 ps1 腳本:
$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 }
在此腳本中,[myProjectId} 是您的 Google 專案 ID - 例如「svelte-dev-80286」
[myProjectPath] 是 VSCode 專案的完整路徑名 - 例如「C:UsersmjoycDesktopGitProjectssvelte-dev」。輸出 log.txt 檔案最終位於 VSCode 專案資料夾的根目錄
腳本看起來比你想像的更複雜。原因如下:
因為您打算自動調度腳本,所以您需要維護一個日誌文件,以便在出現錯誤時告訴您出了什麼問題。僅此一點就增加了許多不可避免的「混亂」。但還有一個奇怪的“版本刪除”部分。您需要這個,因為每次您執行「建置」時,Google 都會在雲端儲存中建立新版本。您可以建立的版本數量有預設上限。當我的系統在版本數達到 200 時出錯時,我添加了此部分。
在上面的腳本中,我將維護的版本數量限制為 10 個(我現在正在為我的應用程式運行託管付費!)。
在 VSCode 終端機會話中測試腳本檔案最直接的方法是選擇其內容,將其貼到會話中並按下回車鍵。但出於生產目的,您需要一些自動化。
以下是註冊 Windows Scheduler 任務以執行建置腳本的過程。
我使用透過上述流程建立的 Windows Scheduler 任務來為預先渲染的「ngatesystems.com」關鍵字搜尋頁面執行夜間建置。儘管現在很少添加新帖子,但我仍在對現有頁面進行定期編輯。每晚運行的安排意味著搜尋頁面永遠不會落後於即時數據超過一天。
以上是NgSysV.Automated Svelte 預渲染構建的詳細內容。更多資訊請關注PHP中文網其他相關文章!