NgSysVAutomated Svelte Pre-render Builds

ngsysvautomated 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 = "$projectPathlog.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 IDgcloud config set project $projectId# Redirect output to log filetry {    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 项目文件夹的根目录

脚本看起来比你想象的更复杂。原因如下:

CAPTURELAB CAPTURELAB

一款面向Steam游戏玩家的AI工具,自动生成集锦

CAPTURELAB 74 查看详情 CAPTURELAB

因为您打算自动调度脚本,所以您需要维护一个日志文件,以便在出现错误时告诉您出了什么问题。仅此一点就增加了许多不可避免的“混乱”。但还有一个奇怪的“版本删除”部分。您需要这个,因为每次您运行“构建”时,google 都会在云存储中创建一个新版本。您可以创建的版本数量有默认上限。当我的系统在版本数达到 200 时出错时,我添加了此部分。

在上面的脚本中,我将维护的版本数量限制为 10 个(我现在正在为我的应用程序运行托管付费!)。

在 vscode 终端会话中测试脚本文件的最直接方法是选择其内容,将其粘贴到会话中并按回车键。但出于生产目的,您需要一些自动化。

3. 配置 windows 计划来运行 powershell 脚本

以下是注册 windows scheduler 任务以运行构建脚本的过程。

在 windows 搜索栏中输入“任务计划程序”并打开应用程序。在“操作”菜单中,单击“创建基本任务”。提供任务的名称和描述在“触发器”选项卡上,选择要运行程序的时间间隔,例如“每日”、“每周”等。 指定任务的开始日期/时间和频率。选择“启动程序”选项按钮。现在,在“启动程序”窗口中:在程序/脚本中:使用“浏览”帮助您输入windows powershell的路径,例如:c:windowssystem32windowspowershellv1.0powershell.exe在参数中:输入脚本的完整路径。例如:[脚本的完整路径][我的脚本文件名].ps1在“开始于”中:输入脚本所在的文件夹路径。例如“[脚本的完整路径]”在下一个窗口中,选中“单击“完成”时打开此任务的属性对话框”复选框,然后单击“完成”按钮。在属性对话框的常规选项卡中,确保选中“用户登录或未登录时运行”和“以最高权限运行”复选框。这可确保您以管理员权限运行脚本。单击“确定”按钮,并使用您计算机的 microsoft 用户名和密码响应登录提示,确认您保存新计划程序任务的权利。打开任务计划库,右键单击此处的任务条目并选择“运行”来测试新任务

我使用通过上述过程创建的 windows scheduler 任务来为预渲染的“ngatesystems.com”关键字搜索页面运行夜间构建。尽管现在很少添加新帖子,但我仍在对现有页面进行定期编辑。每晚运行的安排意味着搜索页面永远不会落后于实时数据超过一天。

以上就是NgSysVAutomated Svelte Pre-render Builds的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/397628.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月6日 18:10:24
下一篇 2025年11月6日 18:13:57

相关推荐

  • Dev、Oops 和 WEBAPP 故事

    作为 DevOps 专业人员开发桌面 Web 应用程序感觉就像在广阔而复杂的海洋中航行。随着技术融合,Web、桌面和基于云的应用程序之间的界限变得模糊,迫使 DevOps 深入传统上由前端占据的领域终端开发商。选择正确的框架变得至关重要,但挑战往往在于筛选当今可用的众多选项。例如,Vite、Reac…

    2025年12月19日
    000
  • Express NextJS NestJS 初学者速查表

    简介 我最近必须学习 nestjs,为一个用它编写的项目做好准备。请注意,不是 nextjs,而是 nestjs。和你们中的一些人一样,我听说过它,但从未有机会实际使用它。它已经流行了一段时间了,今年早些时候赶上了 nodejs 后端开发的鼻祖——expressjs。这是他们的官方推文: <i…

    好文分享 2025年12月19日
    000
  • Git 中合并的良好实践

    安全合并策略: 我正在学习如何在 git 中进行合并,有 2 个好的实践可以帮助您(如果您也是像我一样的新开发人员)最大程度地减少搞乱 git 历史记录的可能性。 从主分支测试合并:当您在主分支上工作并想要合并功能分支,但又想避免破坏主分支的任何风险时,您可以创建测试合并分支。该分支将具有与主分支相…

    2025年12月19日
    000
  • Shuru:具有内置节点版本管理的简单任务运行程序

    好吧,您有要运行的项目、要在节点版本之间切换以及要自动化的任务。您不想要一个臃肿的工具,也不想要在 nvm 和 npm 脚本之间不断切换。 shuru 的作用是简化这一切:带有内置节点版本管理器的任务运行器。它是轻量级的,用 rust 编写,不会妨碍您,同时确保您的任务顺利运行。 修鲁是什么? sh…

    2025年12月19日
    000
  • 即将推出大事

    我决定从头开始构建全栈 Web 开发人员课程,从 HID 一直到服务器和可扩展性。所有需要知道的,都将免费!以下是涵盖的内容: 互联网 互联网是如何运作的?什么是 HTTP?浏览器及其工作原理?DNS 及其工作原理?什么是域名?什么是托管? 前端 HTMLCSSJavaScriptReact.jsN…

    2025年12月19日
    000
  • 使用 Babel 插件模块解析器简化导入

    在处理大型 react native 或 javascript 项目时,管理导入很快就会变得很麻烦。您可能会发现自己正在处理像 ../../../components/header.js 这样的长相对路径,这不仅难以管理而且容易出错。幸运的是,有一个很好的解决方案可以简化和组织导入——使用 babe…

    2025年12月19日
    000
  • 从 shell 脚本迁移到“Bun 脚本”

    在 zcloud 从事专注于流程自动化和基础设施的项目时,我们经常遇到需要创建多个函数来执行验证和通用流程的情况。仅使用一种操作系统时一切正常,但当涉及多个系统时情况就会变得复杂。 在我们的例子中,大部分开发都在 linux 上进行,但我们还需要确保与 macos 的兼容性。这通常会导致代码不兼容。…

    2025年12月19日
    000
  • 在 Nextjs 项目中通过裁剪和压缩优化图像上传

    作为一名前端开发人员,您很有可能曾经或正在从事涉及发布和显示图像的项目。如果你还没有,那么你很快就会的。因此,最近,当我们完成项目后,我们发现在显示用户提供的图像时遇到了麻烦。 这一切是如何解开的最大的问题是如何处理尺寸,尤其是图像的高度与宽度。将图像设置为 object-fit: cover 似乎…

    2025年12月19日
    000
  • 增强您的 Web 动画:像专业人士一样优化 requestAnimationFrame

    流畅且高性能的动画在现代 web 应用程序中至关重要。然而,管理不当可能会使浏览器的主线程过载,导致性能不佳和动画卡顿。 requestanimationframe (raf) 是一种浏览器 api,旨在将动画与显示器的刷新率同步,确保与 settimeout 等替代方案相比更流畅的运动。但高效使用…

    2025年12月19日
    000
  • 你真的了解Git吗?

    本博客中的图片来自 scott chacon、ben straub 的“pro git” 在这个博客中,您将了解有关您在编程中使用的 git 中的一些日常功能的各种精彩事实! 开发人员很容易盲目使用工具而不知道它们在幕后是如何工作的。虽然这种抽象是为了更好,但了解事物如何工作有时可能是经验丰富的程序…

    2025年12月19日
    000
  • TypeScript 中的 TSyringe 和依赖注入

    我不太喜欢像 nestjs 这样的大型框架;我一直喜欢以我想要的方式构建我的软件的自由,以及我以轻量级方式决定的结构。但在测试 nestjs 时我喜欢的是依赖注入。 依赖注入(di)是一种设计模式,它允许我们通过消除创建和管理类依赖关系的责任来开发松散耦合的代码。这种模式对于编写可维护、可测试和可扩…

    2025年12月19日
    000
  • 释放 Nodejs 的力量:构建可扩展后端系统的基本技巧

    凭借四年多的全栈开发经验,主要专注于使用 Node.js、TypeScript 和相关技术的后端系统,我接触到了许多使后端开发更加高效、可扩展和可扩展的技术。可靠的。在本文中,我将分享一些罕见但有影响力的技巧,这些技巧将帮助您最大限度地提高 Node.js 应用程序的性能。这些技术基于涉及微服务、数…

    2025年12月19日
    000
  • 我创建了一个新的开源项目

    我创建了一个可在 Linux、Windows、macOS 上使用的开源文件共享系统,称为 Polyshare,它通过本地网络工作,这意味着它不需要移动数据即可工作。 PolyShare *:快速、跨平台的本地网络文件共享 技术栈:HTML、CSS、Javascript、NodeJS状态:仍在开发中,…

    2025年12月19日
    000
  • 如何使用免费词典API

    unsplash 上的封面照片由 christopher gower 您是否正在开发语言学习应用程序、写作助手或任何涉及单词并需要 api 来检索单词含义的项目?免费词典 api 提供了一种免费且易于访问的方式,将语言数据合并到您的作品中。本文档将向您展示如何开始。 在此 api 文档中: 关于免费…

    2025年12月19日
    000
  • 克隆 Netflix 以提升您的前端技能

    作为一名主要专注于后端的开发人员,我一直觉得我的前端技能需要一些改进。为了测试这一点,我决定通过使用 vue.js 3 和 vite 构建 netflix 克隆来挑战自己。在这篇文章中,我将分解项目结构、关键组件,并分享我的学习经验。 项目概况 目标是创建一个模仿 netflix 用户界面核心功能的…

    2025年12月19日 好文分享
    000
  • 使用 Secrets Loader 轻松管理 Laravel 和 JS 项目

    跨各种环境管理 api 密钥、令牌和凭证等敏感数据可能非常棘手,尤其是在开发和部署应用程序时。确保秘密在需要时安全地存储和获取,而不是将它们硬编码到版本控制中,对于维护安全性至关重要。 这就是我创建 secrets loader 的原因,这是一个 bash 脚本,可以动态地将 aws ssm 和 c…

    2025年12月19日
    000
  • 获得全栈开发认证的最快方法

    在当今技术驱动的世界中,全栈开发是最需要的技能之一。精通前端和后端技术将为高薪工作、自由职业机会和各种令人兴奋的项目打开大门。但如何才能快速获得全栈开发认证并开始受益呢?本指南探讨了成为认证全栈开发人员的最快途径,同时确保您最大限度地发挥您的收入潜力,包括深入了解编码认证薪资期望。 为什么全栈开发能…

    2025年12月19日
    000
  • 我如何赢得 JSM 编程挑战

    在浩瀚的编程挑战中,jsm 编程挑战赛脱颖而出,成为开发人员展示技能和创造力的绝佳机会。上个月的主题“视频游戏”为一场激动人心的比赛奠定了基础,推动参与者探索游戏开发的新领域。在这篇博文中,我将分享我如何创建“宇宙探索者”的旅程,这款游戏最终带领我在星际编码冒险中取得胜利。 游戏:宇宙探索者代码:g…

    2025年12月19日
    000
  • 搜索和(法学硕士)转换

    本文展示了文本编辑器中“搜索和替换”功能的演变,其中“替换”步骤已被 llm 转换替换。该示例使用 genaiscript。 批量应用使用不容易完成的文本转换可能很有用正则表达式。 例如,当我们在中添加使用字符串命令的功能时对于 exec 命令,我们需要将使用参数数组的所有调用转换为以下新语法: h…

    2025年12月19日
    000
  • 使用 create-next-breeze 简化您的 Nextjs 开发

    开始一个新项目时,效率是关键。今天,我将介绍一个强大的工具,它将彻底改变您启动 next.js 项目的方式: npx create-next-breeze 什么是create-next-breeze? create-next-breeze 是 next.js 应用程序的增强型项目初始值设定项。它建立…

    2025年12月19日
    000

发表回复

登录后才能评论
关注微信