Угловые проекты: обмен моделями данных - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть рабочее пространство Angular, которое содержит 3 проекта:

  • wr-admin (приложение)
  • wr-client (приложение)
  • wr-core (библиотека)

wr-core для общих служб, компонентов и моделей данных.

В wr-core я создал следующую папку:

/lib/data

В этом у меня есть несколько моделей данных.

Я связал их в отдельный файл с именем wr.models.ts, а затем экспортировал этот пакет через public_api.ts.

wr.models.ts

export * from './entity.model';
export * from './party.model';
export * from './person.model';
export * from './organisation.model';
export * from './party-role.model';
export * from './role-type.model';

public_api.ts

export * from './lib/wr-core.service';
export * from './lib/wr-core.component';
export * from './lib/wr-core.module';
export * from './lib/data/wr.models';

Я построил эту библиотеку, используя:

ng build wr-core

Я импортировалбиблиотека в app.module.ts:

import { WrCoreModule } from 'wr-core';

...
  imports: [ WrCoreModule ],
...

Затем я получаю эту ошибку:

ERROR in : Error: Module not found: WrCoreModule

Я также пробовал следующее безуспешно:

import { WrCoreModule } from 'wr-core/wr-core';
import { WrCoreModule } from 'wr-core/public_api';

wr-core указан в tsconfig.json:

"paths": {
  "wr-core": [
    "dist/wr-core"
  ],
  "wr-core/*": [
    "dist/wr-core/*"
  ]
}

Мой вопрос: как я могу использовать библиотеку для хранения общих моделей данных?

Я хочу использовать этот подходпотому что будут использоваться те же модели данных, яn wr-admin.Не только это, но я добавлю свои службы API и т. Д. К wr-core, чтобы они также могли быть общими для приложений.

1 Ответ

0 голосов
/ 04 февраля 2019

Являются ли ваши модели простыми классами машинописи?В таком случае, почему вы все-таки собираете модуль?

В моих проектах я обычно делю код между несколькими клиентскими приложениями или клиентом / сервером, просто импортируя файлы машинописного текста и добавляя соответствующую часть в ваше свойство tsconfig.json include.

Допустим, структура вашей папки выглядит следующим образом:

- project1
  - tsconfig.json
- project2
  - tsconfig.json
- your-library
  - file1.ts
  - file2.ts
  - ...

Затем вы можете просто импортировать файлы .ts в свои угловые приложения и включить их в процесс компиляции в tsconfig.json каждого проекта:

{
  "compilerOptions": {...}
  "include": [
    "./",
    "../your-library/**/*",
  ]
}
...