typescript - Kreirajte podmodule za uvoz iz biblioteka u NX slično kao @angular/material
Uspješno sam premjestio svoj kod u biblioteke u svom NX workspaceu. Međutim, imam neke biblioteke koje su prilično velike (utilities) s brojem malih funkcija. Stoga bih želio moći razbiti import na manje module, slično kao @angular/material koji ima import za svaku komponentu (button, card, itd.).
Imam sljedeću strukturu za primjer:
-utilities
-src
-lib
+date-time
+file-types
+functions
index.ts
Ako je moj index.ts:
export * from './lib/date-time/convert-hours-minutes-to-minutes';
export * from './lib/date-time/date-time-formats';
export * from './lib/date-time/get-date-for-end-of-week';
export * from './lib/functions/api-log-mode';
export * from './lib/functions/database-log-mode';
export * from './lib/functions/delete-from-array';
export * from './lib/functions/field-value-list';
export * from './lib/functions/format-bytes-for-users';
export * from './lib/file-types/json-wrapper/json-wrapper';
export * from './lib/file-types/microsoft-excel-wrapper/excel-js-wrapper';
export * from './lib/file-types/xml-wrapper/xml-wrapper';
Mogu pristupiti svim metodama koje želim, ali one su sve uvezene u jednom bloku:
import { DateTimeFormats, ApiLogMode } from '@my-lib/utilities';
Međutim, želio bih to razdvojiti na manje linije uključivanja kada nešto koristi mnogo funkcija iz biblioteke. U tom slučaju, želio bih koristiti uvoz poput:
import { DateTimeFormats, GetDateForEndOfWeek } from '@mylib/utilities/date-time';
U svakoj mojoj mapi unutar lib (date-time, functions itd.) uklonio sam index.ts iz ./lib direktorija i pokušao koristiti i index.d.ts i index.ts u svakoj mapi, bez ikakve sreće.
date-time/index.ts (or index.d.ts)
export * from './lib/date-time/convert-hours-minutes-to-minutes';
export * from './lib/date-time/date-time-formats';
export * from './lib/date-time/get-date-for-end-of-week';
file-types/index.ts (or index.d.ts)
export * from './json-wrapper/json-wrapper';
export * from './microsoft-excel-wrapper/excel-js-wrapper';
export * from './xml-wrapper/xml-wrapper';
Ovo mi još uvijek ne omogućuje uvoz onako kako bih želio. Znam da bih to mogao podijeliti u još više biblioteka u NX radnom prostoru, ali želim verzionirati svoju veću biblioteku za općenitiju uporabu u našim projektima, tako da bi velika 'utilities' biblioteka (1.8.x) bila uključena u naše aplikacije i održavana neovisno.