Skip to main content

infra

Use when working with packages, dependencies, monorepo structure, or build configuration

来源信息

仓库
trycompai/comp
最近来源活动
2026年4月27日 13:56
检测到的 SKILL.md 语言
英语
星标
2,057
Forks
440

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
infra
description
Use when working with packages, dependencies, monorepo structure, or build configuration
Source Cursor rule: `.cursor/rules/infra.mdc`. Original Cursor alwaysApply: `false`. # Infrastructure ## Package Manager **Use `bun`, never npm/yarn/pnpm.** ```bash bun install # Install deps bun add <pkg> # Add package bun add -D <pkg> # Add dev dependency bun run <script> # Run script bunx <cmd> # Execute binary ``` ## Monorepo Structure ``` comp/ ├── apps/ │ ├── api/ # NestJS backend │ ├── app/ # Next.js main app │ └── portal/ # Next.js portal ├── packages/ │ ├── db/ # Prisma (@trycompai/db) │ ├── ui/ # Legacy UI (@trycompai/ui); prefer @trycompai/design-system │ └── ... ├── turbo.json └── package.json ``` ## Running Commands ```bash # Multi-package (via turbo) bun run build # Build all bun run lint # Lint all bun run typecheck # Type check all bun run dev # Dev all # Single package bun run -F apps/app dev bun run -F @trycompai/db prisma:generate turbo build --filter=@trycompai/ui ``` ## Importing Between Packages ```tsx // ✅ Import from package name import { Button } from '@trycompai/design-system'; import { prisma } from '@trycompai/db'; // ❌ Never relative paths across packages import { Button } from '../../../packages/ui/src/button'; ``` ## Adding Dependencies ```bash # To specific package bun add axios -F apps/app bun add -D vitest -F @trycompai/ui # To root (dev tools only) bun add -D -w prettier typescript ``` ## After Code Changes **Always run checks:** ```bash bun run typecheck bun run lint ``` Fix all errors before committing. ## Common TypeScript Fixes - **Property does not exist**: Check interface definitions - **Type mismatch**: Verify expected vs actual type - **Empty interface extends**: Use `type X = SomeType` instead ## Common ESLint Fixes - **Unused variables**: Remove or prefix with `_` - **Any type**: Add proper typing - **Empty object type**: Use `type` instead of `interface` ## Creating a New Package ```bash mkdir packages/my-package ``` ```json // packages/my-package/package.json { "name": "@trycompai/my-package", "version": "0.0.0", "private": true, "main": "./src/index.ts", "scripts": { "build": "tsup src/index.ts --format cjs,esm --dts", "typecheck": "tsc --noEmit" } } ``` ```json // packages/my-package/tsconfig.json { "extends": "@trycompai/tsconfig/base.json", "include": ["src"] } ``` ## Package Boundaries **✅ Create packages for:** - Code used by 2+ apps - Self-contained, focused functionality **❌ Don't create packages for:** - Code only used in one app (colocate instead) - App-specific business logic
在 GitHub 查看