TypeScript Academy · Урок

Монорепозитории и ссылки на проекты

Создайте монорепозиторий рабочей области и настройте ссылки на проекты TypeScript для быстрых инкрементальных сборок и аккуратных типов между пакетами.

Урок 1 из 18 шагов

«Монорепозитории и ссылки на проекты» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 1 из 1. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 1 уроков всего.

Введение

Цель: организовать монорепозиторий, способный масштабироваться. Вы объявите рабочие пространства, добавите ссылки на проекты и выполните сборку с помощью tsc -b для инкрементального вывода.

  • Рабочие пространства pnpm/yarn
  • Составные проекты
  • Общие типы

Структура рабочей области

Простая структура из двух пакетов: общий (библиотека) и приложение (зависит от общего). Рабочие пространства связывают локальные пакеты.

# folder structure (for reference)
			/monorepo
			package.json
			tsconfig.base.json
			packages/
			shared/
			src/index.ts
			package.json
			tsconfig.json
			app/
			src/index.ts
			package.json
			tsconfig.json

Рабочие пространства в корне

Объявите рабочие пространства, чтобы менеджер пакетов связывал локальные зависимости. Добавьте сценарии build/clean с использованием режима сборки TS.

// package.json (root)
			{
			"name": "monorepo",
			"private": true,
			"workspaces": ["packages/*"],
			"scripts": {
			"build": "tsc -b packages/*",
			"clean": "tsc -b packages/* --clean"
			}
			}

Общий пакет

Пометьте библиотеку как составной проект. Генерируйте декларации, чтобы зависимые пакеты могли быстро проверять типы.

// packages/shared/tsconfig.json
{
  "extends": "../../tsconfig.base.json",
  "compilerOptions": {
    "outDir": "dist",
    "rootDir": "src",
    "declaration": true,
    "composite": true
  },
  "include": ["src"]
}

// packages/shared/src/index.ts
export interface User { id: string; name: string }
export const hello = (u: User) => `Hello, ${u.name}`

Пакет приложения и ссылки

Добавьте запись ссылки для зависимости от shared. Сборщик сначала компилирует shared, а затем app.

// packages/app/tsconfig.json
			{
			"extends": "../../tsconfig.base.json",
			"compilerOptions": {
			"outDir": "dist",
			"rootDir": "src",
			"composite": true
			},
			"references": [
			{ "path": "../shared" }
			],
			"include": ["src"]
			}

			// packages/app/src/index.ts
		import { hello } from "shared"
console.log(hello({ id: "u1", name: "Ada" }))

Базовая конфигурация и советы

Советы:

  • Создайте tsconfig.base.json для общих параметров компилятора.
  • Используйте сопоставления paths, соответствующие именам пакетов.
  • Запускайте tsc -b --watch для инкрементальной локальной разработки.

Проверка требований к ссылкам

Быстрая проверка: что должен содержать каждый пакет, на который есть ссылка?

Итоги

Итоги: рабочие пространства связывают локальные пакеты; ссылки на проекты (составной проект + ссылки) обеспечивают быстрые инкрементальные сборки с помощью tsc -b и надежную проверку типов между пакетами.

Можно начать бесплатно

Изучай TypeScript с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
101
Уроки
352

Часто задаваемые вопросы

Урок «Монорепозитории и ссылки на проекты» бесплатный?

Да — полный текст урока «Монорепозитории и ссылки на проекты» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 1 уроков всего.

Чему я научусь в уроке «Монорепозитории и ссылки на проекты»?

Создайте монорепозиторий рабочей области и настройте ссылки на проекты TypeScript для быстрых инкрементальных сборок и аккуратных типов между пакетами. Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать TypeScript Academy?

Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 1.

Сколько времени занимает урок «Монорепозитории и ссылки на проекты»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке TypeScript Academy?

Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

← Назад к TypeScript Academy