← スキル一覧に戻る

monorepo-guide
by Spectaculous-Code
⭐ 0🍴 0📅 2026年1月25日
SKILL.md
name: monorepo-guide description: Guide for working with the Raamattu Nyt monorepo structure. Use when creating new packages, adding apps, managing workspace dependencies, understanding import patterns, or troubleshooting monorepo issues. Covers npm workspaces, shared packages, cross-app code sharing, and Lovable Cloud deployment.
Monorepo Guide
Context Files (Read First)
For structure and conventions, read from Docs/context/:
Docs/context/repo-structure.md- Monorepo layoutDocs/context/packages-map.md- Package index and boundariesDocs/context/conventions.md- Naming and architecture rules
Quick Reference
Import Patterns
import { useAuth } from "@shared-auth/hooks/useAuth";
import { Button } from "@ui/button";
import { supabase } from "@/integrations/supabase/client";
Dependency Commands
# Add to root (shared)
npm install <pkg> -w root
# Add to specific app
npm install <pkg> -w apps/raamattu-nyt
# Add to package
npm install <pkg> -w packages/shared-auth
# Always commit package-lock.json after changes
Common Commands
npm run dev # Start dev server (port 5173)
npm run build # Production build
npm test # Run tests in apps/raamattu-nyt
npx @biomejs/biome check --write . # Lint & format
Creating New Packages
1. Create Package Structure
mkdir -p packages/my-package/src
2. Add package.json
{
"name": "@raamattu-nyt/my-package",
"version": "1.0.0",
"private": true,
"type": "module",
"main": "./src/index.ts",
"types": "./src/index.ts",
"exports": {
"./*": "./src/*"
}
}
3. Create Index Export
// packages/my-package/src/index.ts
export * from './hooks/useMyHook';
export * from './utils/myUtil';
4. Add Path Alias
In apps/raamattu-nyt/vite.config.ts:
resolve: {
alias: {
"@my-package": path.resolve(__dirname, "../../packages/my-package/src"),
}
}
In apps/raamattu-nyt/tsconfig.json:
{
"compilerOptions": {
"paths": {
"@my-package/*": ["../../packages/my-package/src/*"]
}
}
}
5. Use in App
import { useMyHook } from "@my-package/hooks/useMyHook";
Creating New Apps
1. Scaffold App
mkdir -p apps/new-app/src
2. Add Package Dependencies
{
"name": "new-app",
"dependencies": {
"@raamattu-nyt/shared-auth": "*",
"@raamattu-nyt/ui": "*"
}
}
3. Configure Vite & TypeScript
Copy and adapt from apps/raamattu-nyt/:
vite.config.ts- Path aliasestsconfig.json- Path mappings
4. Share Supabase Client
Import from shell or create app-specific client pointing to same project.
Troubleshooting
"packages not in sync"
npm install # Regenerate lockfile
git add package-lock.json && git commit
Import Resolution Errors
- Check path alias in
vite.config.ts - Check paths in
tsconfig.json - Ensure package has proper
exportsfield
Build Fails with Type Errors
# Check if tsconfig includes all needed files
npx tsc --noEmit
References
- Context docs:
Docs/context/(authoritative source) - CI/CD details: See references/ci-cd.md for workflow configuration
スコア
総合スコア
50/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です