encore-migrate by encoredev/skills
npx skills add https://github.com/encoredev/skills --skill encore-migrate此技能指导将任何现有后端应用程序迁移到 Encore,一次迁移一个单元。它支持任何源语言或框架,并面向 Encore.ts 和 Encore Go。将在 Encore 项目根目录创建 migration-plan.md 摘要文件和包含每个单元详细信息的 migration-plan/ 目录,以跟踪跨会话的进度。此技能不包含任何 Encore 代码示例——它将所有 Encore 特定的实现委托给相应的语言特定技能。
在执行任何操作之前,确定进入哪个阶段:
migration-plan.md → 从 阶段 1:发现 开始migration-plan.md 但不存在 migration-plan/ 目录 → 从 阶段 2:规划 恢复(发现已完成,详细文件尚未写入)migration-plan/ 目录且有待处理单元(摘要中状态为 pending 或 的任何单元)→ 从 恢复广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
in progressmigrated、skipped 或 manual validation needed → 进入 阶段 4:完成当 migration-plan.md 和 migration-plan/ 存在且有待处理单元时:
migration-plan.md(仅摘要——不要读取所有详细文件)向用户询问:
读取源代码库并清点所有实体:
| 类别 | 查找内容 |
|---|---|
| 服务 / 模块 / 领域 | 不同的有界上下文、可独立部署的单元、路由分组 |
| API 端点 | 方法、路径、处理函数、请求/响应形状 |
| 数据库 | 类型(Postgres、MySQL 等)、表、模式、迁移文件 |
| 发布/订阅主题和订阅 | 主题名称、发布者、订阅者、消息形状 |
| 定时任务 / 计划任务 | 计划表达式、处理函数 |
| 身份验证中间件 / 处理程序 | 身份验证策略、令牌验证、会话管理 |
| 密钥 / 环境变量 | 所有引用的环境变量和密钥,注意哪些是敏感的 |
| 现有测试 | 测试文件、它们覆盖的实体、使用的测试框架 |
| 前端代码 | React/Vue/Angular 组件、静态 HTML、CSS、客户端 JS——这些超出范围 |
全栈仓库和单体仓库经常混合后端和前端代码。迁移仅针对后端——前端代码超出范围。
检测前端目录并将其标记为超出范围。 常见指示器:
| 模式 | 示例 |
|---|---|
| 专用前端目录 | frontend/、client/、web/、app/(当它包含 React/Vue/Angular 时)、src/components/、public/ |
| 前端配置文件 | next.config.js、vite.config.ts、nuxt.config.ts、angular.json、.svelte-kit/、remix.config.js |
| 包依赖项 | package.json 中的 react、vue、@angular/core、svelte |
标记 应该 被迁移的框架服务器端代码。 一些前端框架嵌入了包含 API 端点、数据库查询或服务器端业务逻辑的后端逻辑:
| 框架 | 服务器端位置 | 查找内容 |
|---|---|---|
| Next.js | pages/api/、app/*/route.ts | API 路由处理程序——这些是后端端点 |
| Remix | app/routes/*.tsx(loader/action 导出) | loader 和 action 函数包含服务器逻辑 |
| Nuxt | server/api/、server/routes/ | 服务器 API 路由 |
| SvelteKit | src/routes/+server.ts、+page.server.ts | 服务器端点和加载函数 |
| Astro | src/pages/*.ts(非 .astro) | API 端点 |
当发现框架服务器端代码时,询问用户如何处理它。 并非所有服务器端代码都应迁移到 Encore——有时一个薄的后端层(BFF、身份验证代理、SSR 数据获取)应该保留在前端框架中,与 Encore 后端并存。
向用户展示发现的内容并询问:
"我在您的应用程序中发现了服务器端路由(例如,
pages/api/users.ts、app/billing/route.ts)。这些包含 可能 迁移到 Encore 的后端逻辑,但有些团队更喜欢在其前端框架中保留一个薄的服务器层,用于诸如 SSR 数据获取或 BFF 代理之类的事情。您希望:
- 全部迁移 服务器端路由到 Encore
- 迁移部分 —— 我将列出它们,您选择哪些迁移
- 全部保留 —— 仅迁移独立的后端代码"
根据用户的选择:
向用户报告: 列出所有检测到的前端目录以及关于框架服务器端代码所做的决定。示例:"我在 app/ 中发现了一个 Next.js 前端——React 组件超出范围。您选择将 pages/api/ 中的 12 个 API 路由中的 8 个迁移到 Encore,并在 Next.js 中保留 4 个薄代理路由。"
使用以下启发式方法按优先级顺序将发现的实体分组到迁移单元中:
/users/*、/billing/*)分块大小: 每个迁移单元的目标是 5-15 个端点。如果一个组超过约 15 个端点,建议进一步拆分它(例如,users-crud 和 users-admin)。如果一个组少于 3 个端点,考虑将其与相关的块合并。
横切关注点 有自己的迁移单元:身份验证、密钥和独立的基础设施(发布/订阅主题、与一个服务没有紧密耦合的定时任务)是单独的单元,因为它们遵循不同的依赖层级。
对于没有明确边界的单体应用程序: 回退到 URL 路径前缀分组,然后询问:"这些分组基于 URL 路径——您希望按领域重新组织它们吗?"
以摘要表格的形式向用户展示迁移单元:
| 单元 | 端点 | 数据库表 | 其他 | 复杂度 |
|---|
包括总数(例如,"7 个迁移单元覆盖 42 个端点,3 个数据库")。对于每个单元,评估整体迁移复杂度:
如果用户希望在确认之前检查其中的内容,则提供显示任何单元的详细信息。
对于 2-3 个代表性实体(从不同单元中选择简单和复杂的混合),显示源代码当前样子的简短"前后"预览以及 Encore 版本将是什么样子。使用适当的语言特定技能来告知预览。保持预览简短——每个预览一个端点、一个查询或一个主题声明就足够了。
请用户确认迁移单元是否正确。具体询问:
如果用户识别出缺失的实体或想要调整块边界,则更新单元并重新呈现摘要表。重复直到用户确认迁移单元准确无误。
检查目标路径是否已存在 Encore 项目(查找 encore.app 文件)。如果存在,请与用户确认这是正确的项目。如果不存在,通过调用 encore-getting-started 技能(对于 Go 使用 encore-go-getting-started)帮助创建一个。
向用户询问:
http://localhost:4000)根据依赖关系对迁移单元进行排序。遵循此层级顺序:
在每个层级内,建议最简单的单元优先(最少的端点、最小的模式、最低的复杂度)。
使用下面"migration-plan.md 格式"部分中的模板,将 migration-plan.md 摘要文件写入 Encore 项目根目录。用状态 pending 填充所有迁移单元。
在 Encore 项目根目录创建 migration-plan/ 目录。使用下面"详细文件格式"部分中的模板,为每个迁移单元编写一个详细文件。每个文件命名为 migration-plan/<unit-name>.md。
提议第一个迁移单元,根据依赖顺序解释为什么它应该首先进行。在进入阶段 3 之前等待用户批准。
读取 migration-plan.md(仅摘要)并根据依赖顺序识别下一个待处理的迁移单元。
建议下一个要迁移的单元,并解释为什么这个是下一个(例如,"此单元对未迁移的单元没有依赖关系"或"数据库必须存在,然后我们才能迁移使用它的服务")。询问用户是否要继续处理此单元或选择其他单元。
读取所选单元的详细文件(migration-plan/<unit-name>.md)。不要读取其他单元的详细文件。
对于单元中的每个实体:
根据实体类型和目标语言调用适当的语言特定技能:
| 迁移... | Encore.ts 技能 | Encore Go 技能 |
|---|---|---|
| 服务结构 | encore-service | encore-go-service |
| API 端点 | encore-api | encore-go-api |
| 身份验证 | encore-auth | encore-go-auth |
| 数据库 + 迁移 | encore-database | encore-go-database |
| 发布/订阅、定时任务、存储桶、密钥 | encore-infrastructure | encore-go-infrastructure |
| 测试 | encore-testing | encore-go-testing |
如果源实体有关联的测试,请使用适当的测试技能(encore-testing 或 encore-go-testing)迁移它们。调整测试断言以匹配 Encore API 模式。如果源实体没有测试,请在详细文件中注明。
在将实体标记为 migrated 之前,应用三个验证层。每个实体都必须通过所有适用的层。
encore-testing 技能(对于 Go 使用 encore-go-testing)来实现测试migrated 之前通过当两个系统都在本地运行时,调用源系统和 Encore 应用程序上的相同端点,然后比较:
在以下情况下跳过此层:
如果对任一系统的请求连接失败,请要求用户在重试之前启动应用程序。不要静默跳过——用户可能只是忘记启动它。
在进行任何可能产生副作用的 HTTP 调用之前,始终询问用户。
在将 任何 实体标记为 migrated 之前,代理 必须 拥有来自当前会话的新证据:
规则:
manual validation needed,而不是 migrated在单元的详细文件(migration-plan/<unit-name>.md)中更新实体的状态,并在该文件的验证日志表中记录验证证据。
当一个单元中的所有实体都完成时,在 migration-plan.md 中将该单元的状态更新为 migrated。如果某些实体待处理,则将单元状态设置为 in progress。
完成一个单元后,询问"您接下来想迁移什么?"并根据依赖顺序建议下一个单元。
默认是一次一个单元。如果用户说"继续"、"全部完成"或类似的话,则批处理多个单元,但在将每个实体标记为已迁移之前仍然单独验证每个实体。
当 migration-plan.md 中的所有单元状态均为 migrated、skipped 或 manual validation needed 时:
migration-plan.md 呈现最终摘要:
manual validation needed 的单元——读取这些特定的详细文件,并列出需要关注的实体及原因encore-frontend 技能将前端重新连接到新的 Encore 后端(生成类型化的 API 客户端、配置 CORS、更新基础 URL)migration-plan.md 和 migration-plan/在以下情况下,请在行动前询问用户:
在迁移过程中绝不能修改源系统。遵循以下规则:
如果用户要求"清理"或"移除"旧系统,请在采取任何行动之前明确确认。源系统可能仍在为生产流量提供服务。
如果用户意识到一个端点属于另一个迁移单元:
migration-plan.md 中的端点计数如果在处理过程中发现一个单元太大:
migration-plan/<new-unit>.md)migration-plan.md 摘要表中单个迁移单元可能映射到多个 Encore 服务。详细文件跟踪源分组,但"备注"列可以指示目标 Encore 服务。在迁移期间询问该单元是映射到一个服务还是应该跨 Encore 服务拆分。
如果详细文件中引用的文件不再存在或自发现以来已发生重大更改:
迁移过程中的常见问题及解决方法:
| 问题 | 原因 | 解决方法 |
|---|---|---|
| 跨服务导入错误 | 服务之间的直接导入 | 使用 ~encore/clients(TS)或服务客户端包(Go)替代 |
| 数据库迁移失败 | 不兼容的 SQL 语法 | 检查 Encore 使用 PostgreSQL——调整 MySQL/SQLite 语法 |
| 发布/订阅消息未接收 | 订阅未注册 | 确保订阅在包级别声明,而不是在函数内部 |
| 定时任务未触发 | 无效的计划表达式 | Encore 使用标准 cron 表达式——验证语法 |
基础设施上的 encore run 错误 | 在函数内部声明的基础设施 | 将所有基础设施声明移动到包级别 |
| 源和 Encore 响应不同 | 缺少业务逻辑或不同的错误处理 | 仔细比较响应形状,检查边缘情况 |
| 无法验证端点 | 需要身份验证或副作用 | 向用户询问测试凭据,或标记为 manual validation needed |
使用此确切模板作为摘要计划文件。从发现阶段填充值。
# 迁移计划
## 源系统
- **路径:** <源系统路径>
- **URL:** <源系统本地 URL>
- **框架:** <检测到的框架>
- **语言:** <检测到的语言>
## 前端(超出范围)
- **检测到:** <是/否>
- **目录:** <前端目录列表,或"无">
- **框架:** <如果检测到前端框架,否则"N/A">
- **备注:** <任何 _已_ 包含在迁移单元中的框架服务器端代码>
## 目标系统
- **路径:** <encore 项目路径>
- **URL:** <encore 本地 URL>
- **类型:** Encore.ts | Encore Go
## 迁移单元
| 单元 | 端点 | 数据库表 | 其他 | 复杂度 | 状态 |
|------|-----------|-----------|-------|------------|--------|
## 依赖顺序
1. <迁移单元的有序列表>
状态值: pending、in progress、migrated、skipped、manual validation needed
复杂度值: Low(直接等价)、Medium(需要重构)、High(需要重新设计)
在 migration-plan/<unit-name>.md 为每个迁移单元创建一个文件。使用此确切模板:
# 迁移单元:<unit-name>
## 源
- **文件:** <此单元中的源文件列表>
- **依赖于:** <其他迁移单元,及其当前状态>
## 端点
| 端点 | 方法 | 路径 | 状态 | 备注 |
|----------|--------|------|--------|-------|
## 数据库
| 表 | 复杂度 | 状态 | 备注 |
|-------|------------|--------|-------|
## 测试
- **源测试:** <测试文件和数量>
- **已迁移:** <已迁移测试的数量>
## 验证日志
| 实体 | 测试 | HTTP 匹配 | 证据 | 状态 |
|--------|-------|------------|----------|--------|
并非所有部分都是必需的——省略不适用于给定单元的部分(例如,密钥单元不会有端点或数据库部分)。
每周安装次数
135
仓库
GitHub 星标数
20
首次出现
2026年1月21日
安全审计
安装在
codex112
gemini-cli110
opencode110
claude-code97
github-copilot91
cursor83
This skill guides migrating any existing backend application to Encore, one migration unit at a time. It supports any source language or framework and targets both Encore.ts and Encore Go. A migration-plan.md summary file and migration-plan/ directory of per-unit detail files are created at the Encore project root to track progress across sessions. This skill contains no Encore code examples — it delegates all Encore-specific implementation to the appropriate language-specific skills.
Before doing anything, determine which phase to enter:
migration-plan.md exists in the Encore project directory → Start at Phase 1: DISCOVERmigration-plan.md exists but no migration-plan/ directory → Resume at Phase 2: PLAN (discovery done, detail files not yet written)migration-plan/ directory exists with pending units (any unit in the summary with status pending or in progress) → Resume at Phase 3: MIGRATEmigrated, skipped, or manual validation needed → Go to Phase 4: COMPLETEWhen migration-plan.md and migration-plan/ exist with pending units:
migration-plan.md (summary only — do NOT read all detail files)Ask the user for:
Read the source codebase and inventory all entities:
| Category | What to look for |
|---|---|
| Services / modules / domains | Distinct bounded contexts, separate deployable units, route groupings |
| API endpoints | Method, path, handler function, request/response shapes |
| Databases | Type (Postgres, MySQL, etc.), tables, schemas, migration files |
| Pub/Sub topics and subscriptions | Topic names, publishers, subscribers, message shapes |
| Cron jobs / scheduled tasks | Schedule expressions, handler functions |
| Auth middleware / handlers | Authentication strategies, token validation, session management |
| Secrets / environment variables | All referenced env vars and secrets, noting which are sensitive |
| Existing tests | Test files, which entities they cover, test framework used |
| Frontend code | React/Vue/Angular components, static HTML, CSS, client-side JS — these are out of scope |
Full-stack repos and monorepos often mix backend and frontend code. The migration targets backend only — frontend code is out of scope.
Detect frontend directories and mark them as out of scope. Common indicators:
| Pattern | Examples |
|---|---|
| Dedicated frontend directories | frontend/, client/, web/, app/ (when it contains React/Vue/Angular), src/components/, public/ |
| Frontend config files | next.config.js, vite.config.ts, nuxt.config.ts, , , |
Flag framework server-side code that should be migrated. Some frontend frameworks embed backend logic that contains API endpoints, database queries, or server-side business logic:
| Framework | Server-side locations | What to look for |
|---|---|---|
| Next.js | pages/api/, app/*/route.ts | API route handlers — these are backend endpoints |
| Remix | app/routes/*.tsx (loader/action exports) | loader and action functions contain server logic |
| Nuxt | server/api/, server/routes/ |
When framework server-side code is found, ask the user what to do with it. Not all server-side code should move to Encore — sometimes a thin backend layer (BFF, auth proxy, SSR data fetching) should stay in the frontend framework alongside an Encore backend.
Present the user with what was found and ask:
"I found server-side routes in your app (e.g.,
pages/api/users.ts,app/billing/route.ts). These contain backend logic that could be migrated to Encore, but some teams prefer to keep a thin server layer in their frontend framework for things like SSR data fetching or BFF proxying. Would you like to:
- Migrate all server-side routes to Encore
- Migrate some — I'll list them and you pick which ones move
- Keep all in — only migrate the standalone backend code"
Based on the user's choice:
Report to the user: List all detected frontend directories and the decision made about framework server-side code. Example: "I found a Next.js frontend in app/ — the React components are out of scope. You chose to migrate 8 of the 12 API routes from pages/api/ to Encore and keep 4 thin proxy routes in Next.js."
Group the discovered entities into migration units using these heuristics in priority order:
/users/*, /billing/*)Chunk sizing: Aim for 5-15 endpoints per migration unit. If a group exceeds ~15 endpoints, suggest splitting it further (e.g., users-crud and users-admin). If a group has fewer than 3 endpoints, consider merging it with a related chunk.
Cross-cutting concerns get their own migration units: auth, secrets, and standalone infrastructure (pub/sub topics, cron jobs not tightly coupled to one service) are separate units since they follow different dependency tiers.
For monoliths with no clear boundaries: Fall back to URL path prefix grouping, then ask: "These groupings are based on URL paths — would you like to reorganize them by domain?"
Present the migration units to the user as a summary table:
| Unit | Endpoints | DB Tables | Other | Complexity |
|---|
Include total counts (e.g., "7 migration units covering 42 endpoints, 3 databases"). For each unit, assess overall migration complexity:
Offer to show the detail of any unit if the user wants to inspect what's inside before confirming.
For 2-3 representative entities (pick a mix of simple and complex from different units), show a short "before and after" preview of what the source code looks like now and what the Encore version will look like. Use the appropriate language-specific skill to inform the preview. Keep previews brief — one endpoint, one query, or one topic declaration is enough per preview.
Ask the user to confirm the migration units are correct. Specifically ask:
If the user identifies missing entities or wants to adjust chunk boundaries, update the units and re-present the summary table. Repeat until the user confirms the migration units are accurate.
Check if an Encore project already exists at the target path (look for encore.app file). If yes, confirm with the user that this is the correct project. If no, help create one by invoking the encore-getting-started skill (or encore-go-getting-started for Go).
Ask the user for:
http://localhost:4000)Order migration units based on dependencies. Follow this tier order:
Within each tier, suggest the simplest unit first (fewest endpoints, smallest schema, least complexity).
Write the migration-plan.md summary file to the Encore project root using the template in the "migration-plan.md Format" section below. Fill in all migration units with status pending.
Create a migration-plan/ directory at the Encore project root. Write one detail file per migration unit using the template in the "Detail File Format" section below. Each file is named migration-plan/<unit-name>.md.
Propose the first migration unit, explaining why it should go first based on the dependency order. Wait for user approval before proceeding to Phase 3.
Read migration-plan.md (summary only) and identify the next pending migration unit based on the dependency order.
Suggest the next unit to migrate and explain why this one is next (e.g., "This unit has no dependencies on unmigrated units" or "The database must exist before we can migrate the service that uses it"). Ask the user if they want to proceed with this unit or pick a different one.
Read the detail file for the chosen unit (migration-plan/<unit-name>.md). Do NOT read detail files for other units.
For each entity in the unit:
Invoke the appropriate language-specific skill based on the entity type and target language:
| Migrating... | Encore.ts skill | Encore Go skill |
|---|---|---|
| Service structure | encore-service | encore-go-service |
| API endpoints | encore-api | encore-go-api |
| Auth | encore-auth | encore-go-auth |
| Database + migrations | encore-database |
If the source entity has associated tests, migrate them using the appropriate testing skill (encore-testing or encore-go-testing). Adapt test assertions to match Encore API patterns. If the source entity has no tests, note this in the detail file.
Three validation layers are applied to each entity before it can be marked as migrated. Every entity must go through all applicable layers.
encore-testing skill (or encore-go-testing for Go) to implement the testsmigratedWhen both systems are running locally, call the same endpoint on both the source system and the Encore app, then compare:
Skip this layer when:
If a request to either system fails to connect , ask the user to start the app before retrying. Do not silently skip — the user may have simply forgotten to start it.
Always ask the user before making any HTTP call that could have side effects.
Before marking ANY entity as migrated, the agent MUST have fresh evidence from the current session:
Rules:
manual validation needed, not migratedUpdate the entity's status in the unit's detail file (migration-plan/<unit-name>.md) and record validation evidence in that file's Validation Log table.
When all entities in a unit are complete, update the unit's status in migration-plan.md to migrated. If some entities are pending, set the unit status to in progress.
After completing a unit, ask "What would you like to migrate next?" and suggest the next unit based on dependency order.
The default is one unit at a time. If the user says "keep going", "do them all", or similar, batch multiple units but still validate each entity individually before marking it as migrated.
When all units in migration-plan.md are migrated, skipped, or manual validation needed:
migration-plan.md:
manual validation needed — read those specific detail files and list the entities that need attention with reasonsencore-frontend skill to reconnect the frontend to the new Encore backend (generate a typed API client, configure CORS, update base URLs)migration-plan.md and migration-plan/ from the project once the user is satisfied with the migrationAsk the user before acting when:
The source system must never be modified during migration. Follow these rules:
If the user asks to "clean up" or "remove" the old system, confirm explicitly before taking any action. The source system may still be serving production traffic.
If the user realizes an endpoint belongs in a different migration unit:
migration-plan.mdIf a unit turns out to be too large while working on it:
migration-plan/<new-unit>.md)migration-plan.md summary tableA single migration unit might map to multiple Encore services. The detail file tracks the source grouping, but the "Notes" column can indicate the target Encore service. Ask during migration if the unit maps to one service or should be split across Encore services.
If files referenced in a detail file no longer exist or have changed significantly since discovery:
Common issues during migration and how to resolve them:
| Problem | Cause | Resolution |
|---|---|---|
| Import errors across services | Direct imports between services | Use ~encore/clients (TS) or service client packages (Go) instead |
| Database migration fails | Incompatible SQL syntax | Check Encore uses PostgreSQL — adapt MySQL/SQLite syntax |
| Pub/Sub messages not received | Subscription not registered | Ensure subscription is declared at package level, not inside a function |
| Cron job not firing | Invalid schedule expression | Encore uses standard cron expressions — verify syntax |
encore run errors on infrastructure | Infrastructure declared inside functions | Move all infrastructure declarations to package level |
| Source and Encore responses differ | Missing business logic or different error handling | Compare response shapes carefully, check edge cases |
Use this exact template for the summary plan file. Fill in values from the discovery phase.
# Migration Plan
## Source System
- **Path:** <source system path>
- **URL:** <source system local URL>
- **Framework:** <detected framework>
- **Language:** <detected language>
## Frontend (Out of Scope)
- **Detected:** <Yes/No>
- **Directories:** <list of frontend directories, or "None">
- **Framework:** <frontend framework if detected, or "N/A">
- **Note:** <any framework server-side code that WAS included in migration units>
## Target System
- **Path:** <encore project path>
- **URL:** <encore local URL>
- **Type:** Encore.ts | Encore Go
## Migration Units
| Unit | Endpoints | DB Tables | Other | Complexity | Status |
|------|-----------|-----------|-------|------------|--------|
## Dependency Order
1. <ordered list of migration units>
Status values: pending, in progress, migrated, skipped, manual validation needed
Complexity values: Low (direct equivalent), Medium (requires restructuring), High (needs redesign)
Create one file per migration unit at migration-plan/<unit-name>.md. Use this exact template:
# Migration Unit: <unit-name>
## Source
- **Files:** <list of source files in this unit>
- **Depends on:** <other migration units, with their current status>
## Endpoints
| Endpoint | Method | Path | Status | Notes |
|----------|--------|------|--------|-------|
## Database
| Table | Complexity | Status | Notes |
|-------|------------|--------|-------|
## Tests
- **Source tests:** <test files and count>
- **Migrated:** <count of migrated tests>
## Validation Log
| Entity | Tests | HTTP Match | Evidence | Status |
|--------|-------|------------|----------|--------|
Not all sections are required — omit sections that don't apply to a given unit (e.g., a secrets unit won't have Endpoints or Database sections).
Weekly Installs
135
Repository
GitHub Stars
20
First Seen
Jan 21, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
codex112
gemini-cli110
opencode110
claude-code97
github-copilot91
cursor83
agent-browser 浏览器自动化工具 - Vercel Labs 命令行网页操作与测试
155,300 周安装
angular.json.svelte-kit/remix.config.js| Package dependencies | react, vue, @angular/core, svelte in package.json |
| Server API routes |
| SvelteKit | src/routes/+server.ts, +page.server.ts | Server endpoints and load functions |
| Astro | src/pages/*.ts (non-.astro) | API endpoints |
encore-go-database |
| Pub/Sub, crons, buckets, secrets | encore-infrastructure | encore-go-infrastructure |
| Tests | encore-testing | encore-go-testing |
| Cannot validate endpoint | Auth required or side effects | Ask user for test credentials, or mark as manual validation needed |