Skip to main content

repo-context

Provides tech stack, package layout, conventions, and build commands for the iTwin/presentation monorepo. Use when: working on any package or app in this repo, planning changes, implementing features, reviewing code.

来源信息

仓库
iTwin/presentation
最近来源活动
2026年9月14日 14:37
检测到的 SKILL.md 语言
英语
星标
6
分支
1

安装方式

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

检查来源文件

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

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
repo-context
description
Provides tech stack, package layout, conventions, and build commands for the iTwin/presentation monorepo. Use when: working on any package or app in this repo, planning changes, implementing features, reviewing code.
# iTwin/presentation Repository Context ## Overview This is a **pnpm monorepo** orchestrated with **Lage** and versioned with **Changesets**. ## Tech Stack | Area | Technology | |------|-----------| | Language | TypeScript (strict, ES2022, dual CJS/ESM builds) | | UI | React 18, iTwinUI components, SCSS | | Testing | Vitest | | Linting | ESLint 9 (flat config), oxfmt for formatting | | Platform | iTwin.js (iModels, ECSQL, Presentation APIs) | | Reactive | RxJS | | API docs | `@itwin/build-tools` (extract-api, docs) | | Node | ^24, pnpm 11 | ## Packages | Package | Path | Purpose | |---------|------|---------| | `@itwin/presentation-shared` | `packages/shared` | Shared utilities and types | | `@itwin/presentation-core-interop` | `packages/core-interop` | Interop layer with iTwin.js Core | | `@itwin/presentation-hierarchies` | `packages/hierarchies` | Hierarchy building from iModels and other sources | | `@itwin/presentation-hierarchies-react` | `packages/hierarchies-react` | React bindings for hierarchies | | `@itwin/presentation-components` | `packages/components` | React components (lists, property grids, tables) | | `@itwin/unified-selection` | `packages/unified-selection` | Unified selection storage | | `@itwin/unified-selection-react` | `packages/unified-selection-react` | React bindings for unified selection | | `@itwin/presentation-opentelemetry` | `packages/opentelemetry` | OpenTelemetry diagnostics integration | | `@itwin/presentation-models-tree` | `packages/models-tree` | Models tree widget for internal testing | | `@itwin/presentation-test-utilities` | `packages/test-utilities` | Internal test utilities | ## Apps | App | Path | Purpose | |-----|------|---------| | `full-stack-tests` | `apps/full-stack-tests` | Integration tests | | `test-app` | `apps/test-app` | Sample app (frontend + backend) | | `performance-tests` | `apps/performance-tests` | Benchmarks for hierarchies and unified selection | ## Key Conventions - Packages produce dual CJS/ESM output via `tsconfig.cjs.json` / `tsconfig.esm.json` - Public API is tracked via `extract-api` and `.api.md` report files in `api/` folders - Copyright headers are required on all source files (enforced by `copyrightLinter.js`): ``` /*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ ``` - User-visible changes to released packages require a changeset (`pnpm change`); packages with `"private": true` do not require a changeset. - Build order is managed by Lage (`lage build`, dependencies via `^build`) ## Common Commands | Scope | Build | Test | Lint | Format | |-------|-------|------|------|--------| | All (repo root) | `pnpm build:all` | `pnpm cover:all` | `pnpm lint:all` | `pnpm format` | | Single package | `pnpm build` | `pnpm test` | `pnpm lint` | `pnpm -w exec oxfmt --check .` | | Scoped build | `pnpm lage build --to <package>` | — | — | — | | Format fix | `pnpm format:fix` | — | — | — |
在 GitHub 查看