首頁 > web前端 > js教程 > NgSysV.Automated Svelte 預渲染構建

NgSysV.Automated Svelte 預渲染構建

Patricia Arquette
發布: 2024-11-28 15:40:11
原創
471 人瀏覽過

NgSysV.Automated Svelte Pre-render Builds

此貼文系列已在 NgateSystems.com 建立索引。您還可以在那裡找到超級有用的關鍵字搜尋工具。

最後評論:24 年 11 月

一、簡介

Post 4.2 提出了預先渲染網頁的概念。這個想法是,如果一個頁面從不改變(或至少不經常改變),那麼它也可能在專案的「建置」過程中轉換成 HTMl。

這很好,但是,如果底層資料更改得太頻繁,運行建置來使預渲染頁面保持最新手動將會變得煩人。 自動化肯定是答案。

您可以透過多種方式解決這個問題,但我建議使用腳本來執行建置/部署序列,然後讓 Windows 排程器自動執行它

2. Powershell 建置/部署腳本

這是您可能會使用的 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 終端機會話中測試腳本檔案最直接的方法是選擇其內容,將其貼到會話中並按下回車鍵。但出於生產目的,您需要一些自動化。

3. 設定 Windows 計畫來執行 PowerShell 腳本

以下是註冊 Windows Scheduler 任務以執行建置腳本的過程。

  1. 在 Windows 搜尋列中輸入「工作排程器」並開啟應用程式。
  2. 在「操作」功能表中,按一下「建立基本任務」。
  3. 提供任務的名稱和描述
  4. 在「觸發器」標籤上,選擇要執行程式的時間間隔,例如「每日」、「每週」等。
  5. 指定任務的開始日期/時間和頻率。
  6. 選擇「啟動程式」選項按鈕。
  7. 現在,在「啟動程式」視窗中: 在程式/腳本中:使用「瀏覽」來協助您輸入Windows PowerShell的路徑,例如:C:WindowsSystem32WindowsPowerShellv1.0powershell.exe 在參數中:輸入腳本的完整路徑。例如:[腳本的完整路徑][我的腳本檔名].ps1 在「開始於」中:輸入腳本所在的資料夾路徑。例如「[腳本的完整路徑]」
  8. 在下一個視窗中,選取「按一下「完成」時開啟此任務的屬性對話框」複選框,然後按一下「完成」按鈕。
  9. 在屬性對話方塊的常規標籤中,確保選取「使用者登入或未登入時執行」和「以最高權限執行」複選框。這可確保您以管理員權限執行腳本。
  10. 按一下「確定」按鈕,並使用您電腦的 Microsoft 使用者名稱和密碼回應登入提示,確認您儲存新排程器任務的權利。
  11. 透過開啟任務計畫庫來測試新任務,右鍵點擊此處的任務條目並選擇「執行」

我使用透過上述流程建立的 Windows Scheduler 任務來為預先渲染的「ngatesystems.com」關鍵字搜尋頁面執行夜間建置。儘管現在很少添加新帖子,但我仍在對現有頁面進行定期編輯。每晚運行的安排意味著搜尋頁面永遠不會落後於即時數據超過一天。

以上是NgSysV.Automated Svelte 預渲染構建的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板