n8n 开发规范
- 作者仓库星标 190,957
- 作者仓库 n8n
n8n Quick Reference
📚 Full Documentation:
- General:
/AGENTS.md- Architecture, commands, workflows - Frontend:
/packages/frontend/AGENTS.md- CSS variables, timing
Use this skill when you need quick reminders on critical patterns.
Critical Rules (Must Follow)
TypeScript:
- Never
any→ useunknown - Prefer
satisfiesoveras(except tests) - Shared types in
@n8n/api-types
Error Handling:
import { UnexpectedError } from 'n8n-workflow';
throw new UnexpectedError('message', { extra: { context } });
// DON'T use deprecated ApplicationError
Frontend:
- Vue 3 Composition API (
<script setup lang="ts">) - CSS variables (never hardcode px) - see
/packages/frontend/AGENTS.md - All text via i18n (
$t('key')) data-testidfor E2E (single value, no spaces)
Backend:
- Controller → Service → Repository
- Dependency injection via
@n8n/di - Config via
@n8n/config - Zod schemas for validation
Testing:
- Vitest (unit), Playwright (E2E)
- Mock external dependencies
- Work from package directory:
pushd packages/cli && pnpm test
Database:
- SQLite/PostgreSQL only (app DB)
- Exception: DB nodes (MySQL Node, etc.) can use DB-specific features
Commands:
pnpm build > build.log 2>&1 # Always redirect
pnpm typecheck # Before commit
pnpm lint # Before commit
Key Packages
| Package | Purpose |
|---|---|
packages/cli |
Backend API |
packages/frontend/editor-ui |
Vue 3 frontend |
packages/@n8n/api-types |
Shared types |
packages/@n8n/db |
TypeORM entities |
packages/workflow |
Core interfaces |
Common Patterns
Pinia Store:
import { STORES } from '@n8n/stores';
export const useMyStore = defineStore(STORES.MY_STORE, () => {
const state = shallowRef([]);
return { state };
});
Vue Component:
<script setup lang="ts">
type Props = { title: string };
const props = defineProps<Props>();
</script>
Service:
import { Service } from '@n8n/di';
import { Config } from '@n8n/config';
@Service()
export class MyService {
constructor(private readonly config: Config) {}
}
📖 Need more details? Read /AGENTS.md and /packages/frontend/AGENTS.md
- 流狐分类
- 文档
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 88 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @n8n-io · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 即装即用
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- macOS · Linux · Windows
- 底层运行要求
- Node.js
- 检测到的文件与系统行为
-
- 只读
- 允许写入 / 修改
- 检测到的网络行为
- 仅限本地
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
作者没有在当前 SKILL.md 中定义固定输出样例。 Critical Rules (Must Follow)
TypeScript: Never any → use unknown Prefer satisfies over as (except tests)
Key Packages
Package · Purpose packages/cli · Backend API packages/frontend/editor-ui · Vue 3 frontend
Common Patterns
Pinia Store: Vue Component: Service:
# n8n Quick Reference
**📚 Full Documentation:**
- **General:** `/AGENTS.md` - Architecture, commands, workflows
- **Frontend:** `/packages/frontend/AGENTS.md` - CSS variables, timing
Use this skill when you need quick reminders on critical patterns.
## Critical Rules (Must Follow)
**TypeScript:**
- Never `any` → use `unknown`
- Prefer `satisfies` over `as` (except tests)
- Shared types in `@n8n/api-types`
**Error Handling:**
```typescript
import { UnexpectedError } from 'n8n-workflow';
throw new UnexpectedError('message', { extra: { context } });
// DON'T use deprecated ApplicationError
```
**Frontend:**
- Vue 3 Composition API (`<script setup lang="ts">`)
- CSS variables (never hardcode px) - see `/packages/frontend/AGENTS.md`
- All text via i18n (`$t('key')`)
- `data-testid` for E2E (single value, no spaces)
**Backend:**
- Controller → Service → Repository
- Dependency injection via `@n8n/di`
- Config via `@n8n/config`
- Zod schemas for validation
**Testing:**
- Vitest (unit), Playwright (E2E)
- Mock external dependencies
- Work from package directory: `pushd packages/cli && pnpm test`
**Database:**
- SQLite/PostgreSQL only (app DB)
- Exception: DB nodes (MySQL Node, etc.) can use DB-specific features
**Commands:**
```bash
pnpm build > build.log 2>&1 # Always redirect
pnpm typecheck # Before commit
pnpm lint # Before commit
```
## Key Packages
| Package | Purpose |
|---------|---------|
| `packages/cli` | Backend API |
| `packages/frontend/editor-ui` | Vue 3 frontend |
| `packages/@n8n/api-types` | Shared types |
| `packages/@n8n/db` | TypeORM entities |
| `packages/workflow` | Core interfaces |
## Common Patterns
**Pinia Store:**
```typescript
import { STORES } from '@n8n/stores';
… 证据边界与执行链路
作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> Critical Rules (Must Follow) → Key Packages → Common Patterns
要点 -> 📚 Full Documentation · General · Frontend · TypeScript · Error Handling · Backend · Testing · Database
文件/命令 -> /AGENTS.md · /packages/frontend/AGENTS.md · any · unknown · satisfies · @n8n/api-types · <script setup lang="ts"> · $t('key')
内容 SHA-256 -> ae9e6e50bcf5
原文结构
适用与边界
原文中的明确线索
/AGENTS.md、/packages/frontend/AGENTS.md、any、unknown、satisfies、@n8n/api-types、<script setup lang="ts">、$t('key')