Namespace Aliases
Use short namespace imports to avoid deep relative paths.
Backend: @Ciri
Applies to: code inside be/core
typescript
// ✅ Do this
import { UserService } from "@Ciri/services/user.service";
// ❌ Not this
import { UserService } from "../../../services/user.service";
Config:
- •
be/tsconfig.json→paths: { "@Ciri/*": ["core/*"] }
Exception: Keep Prisma imports as relative paths:
typescript
import { prisma } from "../generated/prisma/client";
Frontend: @Jade
Applies to: code inside fe/src
typescript
// ✅ Do this import CommonButton from "@Jade/core-design/input/CommonButton"; // ❌ Not this import CommonButton from "../../core-design/input/CommonButton";
Config:
- •
fe/tsconfig.app.json→paths: { "@Jade/*": ["*"] } - •
fe/vite.config.ts→resolve.alias["@Jade"] = src
Exception: Library imports stay as package names:
typescript
import { useQuery } from "@tanstack/react-query";
E2E: @arcade
Applies to: code inside e2e/
typescript
// ✅ Do this
import { logger } from "@arcade/support/utils/logger";
// ❌ Not this
import { logger } from "../support/utils/logger";
Config:
- •
e2e/tsconfig.json→paths: { "@arcade/*": ["*"] }
Quick Reference
| Workspace | Alias | Base Path |
|---|---|---|
| Backend | @Ciri/* | be/core/* |
| Frontend | @Jade/* | fe/src/* |
| E2E | @arcade/* | e2e/* |