Skip to main content

Монорепозиторій

Ditsmod має спеціальний репозиторій, призначений для розробки декількох TypeScript-проектів, пов'язаних між собою через compilerOptions.paths та Project References. Щоб клонувати його та встановити залежності, зробіть наступне:

git clone --depth 1 https://github.com/ditsmod/monorepo.git my-monorepo
cd my-monorepo
npm i

В цей репозиторій входить приклад Ditsmod-застосунку в теці apps/backend, а також приклад Ditsmod-модуля в теці packages/package1, який можна публікувати як Ditsmod-бібліотеку (надалі такий модуль будемо називати бібліотекою).

Попередні умови

Будь-ласка, переконайтесь що на вашій операційній системі встановлено Node.js >= v20.6.0.

Особливості Ditsmod-бібліотеки

У порівнянні з модулем Ditsmod-застосунка, модуль Ditsmod-бібліотеки має наступні особливості:

  1. З бібліотеки експортують єдиний Ditsmod-модуль з файлу index.ts. Досить рідко з однієї бібліотеки експортують декілька модулів, або взагалі не експортують модулі.
  2. У package.json вказано @ditsmod/core та інші залежні модулі у якості peerDependencies, гарантуючи тим самим, що указані модулі будуть встановлені в єдиному екземплярі на увесь застосунок. Це зроблено для коректної роботи Dependency Injection, який часто використовує референс на клас (чи інший об'єкт), що імпортується з певного файла.