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