Монорепозитории и ссылки на проекты
Создайте монорепозиторий рабочей области и настройте ссылки на проекты TypeScript для быстрых инкрементальных сборок и аккуратных типов между пакетами.
«Монорепозитории и ссылки на проекты» — бесплатный урок 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 — локальная установка не требуется.