Rumah > hujung hadapan web > tutorial js > NgSysV.Binaan Pra-pemarahan Svelte Automatik

NgSysV.Binaan Pra-pemarahan Svelte Automatik

Patricia Arquette
Lepaskan: 2024-11-28 15:40:11
asal
472 orang telah melayarinya

NgSysV.Automated Svelte Pre-render Builds

Siri siaran ini diindeks di NgateSystems.com. Anda akan temui kemudahan carian kata kunci yang sangat berguna di sana juga.

Semakan terakhir: Nov '24

1. Pengenalan

Siaran 4.2 mengapungkan konsep pra-pemarahan halaman web. Ideanya ialah jika halaman tidak pernah berubah (atau, sekurang-kurangnya, tidak terlalu kerap berubah) maka ia juga mungkin ditukar menjadi HTMl semasa "pembinaan" projek.

Ini baik tetapi, jika data asas berubah terlalu kerap, menjalankan binaan untuk membawa halaman pra-paparan terkini secara manual akan menjadi menjengkelkan. Automasi sudah pasti jawapannya.

Anda mungkin menangani perkara ini dalam beberapa cara, tetapi saya syorkan menggunakan skrip untuk menjalankan jujukan binaan/kerahan dan kemudian dapatkan penjadual Windows untuk menjalankannya secara automatik

2. Skrip Powershell Build/Deploy

Ini skrip ps1 yang mungkin anda gunakan:

$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
}
Salin selepas log masuk

Dalam skrip ini, [myProjectId} ialah Google projectId anda - cth "svelte-dev-80286"
dan [myProjectPath] ialah nama laluan penuh untuk projek VSCode anda - cth "C:UsersmjoycDesktopGitProjectssvelte-dev". Fail log.txt output berakhir dalam akar folder projek VSCode anda

Skrip kelihatan lebih rumit daripada yang anda jangkakan. Inilah sebabnya:

Oleh kerana anda berhasrat untuk menjadualkan skrip secara automatik, anda perlu mengekalkan fail log untuk memberitahu anda apa yang telah berlaku jika ia ralat. Ini sahaja menambah "kekusutan" yang tidak dapat dielakkan. Tetapi terdapat juga bahagian "pemadaman versi" yang pelik. Anda memerlukan ini kerana, setiap kali anda menjalankan "bina", Google akan mencipta versi baharu dalam storan awan. Terdapat maksimum lalai kepada bilangan versi yang boleh anda buat. Saya menambah bahagian ini apabila sistem saya ralat apabila bilangan versi mencapai 200.

Dalam skrip di atas, saya mengehadkan bilangan versi yang dikekalkan kepada hanya 10 (saya membayar untuk pengehosan App run saya sekarang!).

Cara paling langsung untuk menguji fail skrip dalam sesi terminal VSCode ialah memilih kandungannya, tampalkannya ke dalam sesi dan tekan kembali. Tetapi untuk tujuan pengeluaran, anda memerlukan sedikit automasi.

3. Mengkonfigurasi Jadual Windows untuk menjalankan skrip PowerShell

Berikut ialah prosedur untuk mendaftarkan tugas Penjadual Windows untuk menjalankan skrip binaan.

  1. Taip "Penjadual Tugas" dalam bar carian Windows dan buka apl.
  2. Dalam menu Tindakan, klik pada “Buat Tugasan Asas”.
  3. Bekalkan nama dan penerangan untuk tugasan
  4. Pada tab Pencetus, Pilih selang masa yang anda mahu jalankan program, seperti “Harian”, “Mingguan”, dsb.
  5. Nyatakan tarikh/masa mula dan kekerapan untuk tugasan.
  6. Pilih butang pilihan "Mulakan program".
  7. Sekarang, dalam tetingkap "Mulakan Program": Dalam Program/skrip: Gunakan "browse" untuk membantu anda memasuki laluan Windows PowerShell, cth: C:WindowsSystem32WindowsPowerShellv1.0powershell.exe Dalam Argumen: Masukkan laluan penuh skrip. cth: [laluan penuh ke skrip][nama fail skrip saya].ps1 Dalam "Mula dalam": Masukkan laluan folder di mana skrip berada. cth “[laluan penuh ke skrip]”
  8. Dalam tetingkap seterusnya, pilih kotak semak "Buka dialog Properties untuk tugas ini apabila saya mengklik Selesai", dan klik butang Selesai.
  9. Dalam tab Umum dialog sifat, pastikan kotak semak "Jalankan apabila pengguna log masuk atau tidak" dan "Jalankan dengan keistimewaan tertinggi" dipilih. Ini memastikan anda menjalankan skrip dengan hak Pentadbir.
  10. Klik butang OK dan sahkan hak anda untuk menyimpan tugas penjadual baharu anda dengan membalas gesaan log masuk dengan nama pengguna dan kata laluan Microsoft anda untuk mesin anda.
  11. Uji tugas baharu dengan membuka Pustaka Jadual Tugasan, klik kanan pada entri tugasan di sini dan pilih "Jalankan"

Saya menggunakan tugasan Penjadual Windows yang dibuat menggunakan prosedur di atas untuk menjalankan binaan setiap malam untuk halaman carian kata kunci "ngatesystems.com" pra-diberikan. Walaupun siaran baharu kini jarang ditambah, saya masih membuat pengeditan biasa pada halaman sedia ada. Susunan larian setiap malam bermakna halaman carian tidak melebihi sehari di belakang data langsung.

Atas ialah kandungan terperinci NgSysV.Binaan Pra-pemarahan Svelte Automatik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan